Django模板集的集合

时间:2014-02-19 15:53:12

标签: django django-models django-templates

是否可以访问django模板中的一组集合。

即。 a.b_set.c_set.count

所以它得到与c相关的所有b对象相关的所有c对象的计数。

我知道我可以在后端进行查询,即c.objects.filter(b__a = a),但我希望仅从模板中进行查询。

干杯, 埃米特

1 个答案:

答案 0 :(得分:0)

这可能无法从模板中进行,因为它从未打算使用“复杂”逻辑。你应该在视图中做到这一点。 由于你想得到的是一个新的属性“每个查询集”,这不是一个单行。

示例:

as = a.objects.all()
for a in as:
    a.b_c_count = c.objects.filter(b__a=a).count()

并在模板中使用它:

a.b_c_count

如果你有很多对象,这将是一个瓶颈,所以你可能想尝试extra方法(并使用as = a.objects.all()。extra(* parameters)) ,甚至是原始的sql。