我已经阅读了此处的文档和所有其他答案,但我似乎无法理解它。
我需要计算通过外键连接到查询集中的行的其他表中外键的数量。
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
的来源或它是如何定义的。
最佳答案
_set
由 django 用于查找数据库关系的反向查询,并附加到外键字段名称的末尾以声明您要查询所有相关对象,因此在您的情况下将是 part_set
,这意味着对于任何给定的结果,您都可以按如下方式访问该部分集的计数:
results = PartReference.objects.all()
for result in results:
print(result.name, result.code, results.part_set.count())
关于python - 计算 Django 中的外键数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34508804/