我有两个模型,Item
和Vote
:
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} }!
如何正确构建此查询集?谢谢!
答案 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')