1

djangoには次のテーブルがあり、アイテムごとに投票数を数えようとしています。

class Votes(models.Model):
    user = models.ForeignKey(User)
    item = models.ForeignKey(Item)


class Item(models.Model):
    name = models.CharField()
    description = models.TextField()

次のクエリセットがあります

queryset = Votes.objects.values('item__name').annotate(Count('item'))

アイテム名とビュー カウントを含むリストを返しますが、アイテム オブジェクトは返しません。文字列値だけでなくオブジェクトが返されるように設定するにはどうすればよいですか? 私は Manager と Queryset メソッドをいじっていますが、それは正しいですか? アドバイスをいただければ幸いです。

4

1 に答える 1

2

これを試すことができます:

queryset = Votes.values.annotate(t_count=Count('item'))

最初の Vote オブジェクトのカウント値を取得するには:

queryset[0].t_count

または Item オブジェクトを取得するには:

Item.objects.annotate(i_count=Count('votes'))
于 2011-03-03T13:28:08.340 に答える