0
我有三個型號(Django的1.6.5)的乘法和:Django的聚合:兩個字段不在同一型號
class Vote(models.Model):
voter = models.ForeignKey(UserSettings)
answer = models.ForeignKey(Answer)
rating = models.IntegerField()
class Answer(models.Model):
content = models.CharField(max_length=255)
class UserSettings(models.Model):
user = models.OneToOneField(User, related_name='settings')
weight = models.FloatField(default=1.0)
基本上,用戶(選民)可以通過投票給出一個答案評級。我知道如何回答,總結評級:
Vote.objects.all().values('answer').annotate(score=Sum('rating'))
唯一的微妙之處在於每個選民的重量(所有選民是不相等的!),我要總結每個產品的評價*重。我知道(從here)是類似的東西可以做到:
Sum('id',field="field1*field2")
和它的工作好,如果我的2場是在同一個模型,但是如果他們沒有它不工作。換句話說,命令:
Vote.objects.all().values('answer').annotate(score=Sum('id',field="rating*voter__weight"))
不起作用。任何幫助非常感謝!