我使用一个表Bid在此表中具有多个字段,另一个名为user的字段具有一个Dealer表,该表将用户保存在Dealer_serializer中,我有一个bids_count序列化器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)
答案 0 :(得分:0)
我找不到您的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
相关。
我希望这是您要实现的目标。如有任何疑问,请发表评论。