python - 计算 Django 中的外键数量

标签 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 的来源或它是如何定义的。

最佳答案

_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/

相关文章:

python - Webpy,从另一个方法调用 View

python - Django 导入导出选择字段

django - 如何更改 PostgreSQL 中的列类型和所有外键?

python - 如何使用 mutagen(Python 和 Django)获取标题、艺术家和专辑封面?

python - 如何使用 Selenium、Python 从 Google 搜索中提取链接

python - Django 中无效的 block 标签 i=0

python - Django:禁用的下拉列表不会将信息发送回 POST

django - 为什么 django SimpleTestCase 创建测试数据库

python - Matplotlib,绘制时避免更新鼠标光标

python - 如何找到各个 x 和 y 值的拟合参数