您好我是以下结构
class Vegetable(models.Model):
vegetable_name = models.Chafield(max_legnth = 100)
class Buyer(models.Model):
buyer_name = models.Chafield(max_legnth = 100)
Class Holding(models.Model):
vegetable = models.ForeignKey(Vegetable)
buyer = models.ForeignKey(Buyer)
我想得到哪个买家持有特定蔬菜的数量,以及持有的特定蔬菜的单位总数。当然我可以使用过滤器和注释,但他们给我一本字典。例如我可以使用
Holding.objects.filter(vegetable__pk='223').values('buyer').annotate(tcount=Count('buyer'))
(仅举例)
这给了我以下列表作为答案:
[{'buyer': '111', 'tcount': 3}, {'buyer': u'112', 'tcount': 4}, {'buyer': u'113', 'tcount': 3}]
现在总持有量或蔬菜为3 + 4 + 3 = 10
我将不得不经历迭代字典并检索计数值并添加它们的额外计算。我也不想再做一个额外的查询,只是为了获得pk ='223'的蔬菜。我可以通过一个ORM查询以某种方式获取所有这些信息,也不会执行任何迭代计算。
答案 0 :(得分:1)
要获得所有买家的特定蔬菜总数,您可以:
Vegetable.objects.filter(vegetable_name="Carrot").count()