我使用一个表,该表中的Bid有多个字段,一个名为user的字段另一方面有一个将用户保存在Dealer_serializer中的Dealer表,我有一个bids_count serializer Method字段,它返回Bid表中的每个用户计数,我想使用注释而不是循环过滤器!以获取每个用户在投标表中的数量。如果我的想法不正确,请解释我到底在做什么注释?
class Dealer(User):
car_exhibition = models.CharField(max_length=200, blank=True, null=True)
phone = models.CharField(max_length=11, blank=True, null=True)
city = models.ForeignKey('locations.City', blank=True, null=True)
address = models.TextField(max_length=500)
class Bid(models.Model):
auction = models.ForeignKey('Auction')
user = models.ForeignKey('users.User')
step = models.BigIntegerField()
price = models.BigIntegerField()
created_time = models.DateTimeField(auto_now=True)
我找不到您的Dealer
和Bid
的关系。但对于User
,您可以使用注释:
User.objects.annotate(bids_count=Count('bid')).values('id', 'bids_count')
因此,您将拥有:
<QuerySet [{'id': 1, 'bids_count': 3}, {'id': 2, 'bids_count': 10}, ..., >
其中id
是user_id
,bid_count
是有多少Bids
与User
和该id
相关。我希望这就是你将要实现的目标。如有任何问题,请发表评论。