Django |来自外键的合计值

时间:2018-07-27 04:00:26

标签: python django

我有两个数据库,AB

B包含一个ForeignKeyA

当我做B.objects.filter(a_id=3).values('bags').count()时,我会得到自己想要的号码Y

要将这个数字Y作为注释添加到数据库A中,我需要什么命令集?

理想情况下,这将是annotate类型的命令。

模型如下:

class A(models.Model):
    name = models.CharField(max_length=150)

class B(models.Model):
    name = models.CharField(max_length=150)
    a_id = models.ForeignKey(A, on_delete=models.CASCADE)
    bags = models.ManyToManyField(Bags)

class Bags(models.Model):
    name = models.CharField(max_length=150)

2 个答案:

答案 0 :(得分:1)

尝试在批注中使用b__bags查找

from django.db.models import Count
A.objects.annotate(bags_count=Count('b__bags'))

答案 1 :(得分:1)

from django.db.models import Count

A.objects.annotate(Y=Count('b__bags'))