计算Django中的外键数

时间:2015-12-29 10:10:07

标签: 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()

我会做类似的事情:

results = PartReference.objects.all()

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

results[0].count

最终做类似的事情:

print(results[0].name, results[0].code, results[0].count)

我无法绕过Django documentation - 在示例中entry_set会发生一些事情,但不解释entry的位置来自或如何定义。

2 个答案:

答案 0 :(得分:4)

django使用

_set查找数据库关系的反向查询,并将其附加到外键字段名称的末尾,以表明您要查询所有与您相关的对象,以便{ {1}},这意味着对于任何给定的结果,您可以按如下方式访问该部分集的计数:

part_set

答案 1 :(得分:0)

  

我无法绕过Django文档 - 有一些   在示例中继续使用entry_set,但没有解释   条目来自或如何定义。

entry_set来自Entry表,奇怪的是我不得不说Django doc没有解释它,它是隐含的,例如如果B链接到A,那么从{A}访问B将是b_set

回到你的问题,我想这里有很多次问过这个问题,例如Django count related objects