Django:我如何在ForeignKey关系中对值的总和进行注释?

时间:2015-05-15 02:17:23

标签: django

我有两个模型,ItemVote

class Item(models.Model):
    name=CharField(max_length=75)

class Vote(models.Model):
    item = ForeignKey(Item)
    value = IntegerField()

我想按照投票价值总和的顺序提供一个包含项目列表的查询集。我正在尝试:

items = Item.objects.annotate(Sum('votes__value')).order_by('votes__value')

但在我有两张选票的情况下 - 一个value = 0和一个value = 1 - 我收到了两个Item个实例的查询集,其中{{1} }!

如何正确构建此查询集?谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个;

items = Item.objects.values('item').annotate(votes_value=Sum('votes')).order_by('votes')

items = Item.objects.values('item').annotate(votes_value=Sum('votes'))

答案 1 :(得分:0)

尝试类似:

Item.objects.annotate(votes_total=Sum('votes__value')).order_by('votes_total')