0

你好我是以下结构

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 查询获取所有这些信息,并且也不执行任何迭代计算。

4

1 回答 1

1

要获得所有买家中特定蔬菜的总数,您可以:

Vegetable.objects.filter(vegetable_name="Carrot").count()
于 2013-06-27T10:33:45.157 回答