统计 Django 中外键的数量

Max*_*axQ 1 python django

我已阅读此处的文档和所有其他答案,但我似乎无法理解它。

我需要计算另一个表中通过外键连接到查询集中的行的外键数量。

class PartReference(models.Model):
    name = models.CharField(max_length=10)
    code = models.IntegerField()

class Part(models.Model):
    code = models.ForeignKey(PartReference)
    serial_number = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

我会做类似的事情:

results = PartReference.objects.all()
Run Code Online (Sandbox Code Playgroud)

但我想要一个像任何其他字段一样包含零件数量的变量,例如:

results[0].count
Run Code Online (Sandbox Code Playgroud)

最终做类似的事情:

print(results[0].name, results[0].code, results[0].count)
Run Code Online (Sandbox Code Playgroud)

我无法理解Django 文档- 示例中发生了一些事情entry_set,但没有解释entry它来自哪里或如何定义。

Say*_*yse 5

_setdjango 使用它来查找数据库关系的反向查询,并附加到外键字段名称的末尾,以表明您想要查询所有相关的对象,因此在您的情况下,这part_set意味着对于任何给定的结果,您可以按如下方式访问该部分集的计数:

results = PartReference.objects.all()
for result in results:    
    print(result.name, result.code, results.part_set.count())
Run Code Online (Sandbox Code Playgroud)