【发布时间】:2014-02-19 15:53:12
【问题描述】:
django模板中是否可以访问一组集合。
即。 a.b_set.c_set.count
所以它得到了所有与 c 相关的 b 对象相关的所有 c 对象的计数。
我知道我可以在后端进行查询,即 c.objects.filter(b__a=a),但是我希望仅从模板中进行。
干杯, 埃米特
【问题讨论】:
标签: django django-models django-templates
django模板中是否可以访问一组集合。
即。 a.b_set.c_set.count
所以它得到了所有与 c 相关的 b 对象相关的所有 c 对象的计数。
我知道我可以在后端进行查询,即 c.objects.filter(b__a=a),但是我希望仅从模板中进行。
干杯, 埃米特
【问题讨论】:
标签: django django-models django-templates
这可能无法从模板中完成,因为它从未打算使用“复杂”逻辑。您应该在视图中执行此操作。 由于您想要获得的是“每个查询集”的新属性,因此这不是单行的。
例子:
as = a.objects.all()
for a in as:
a.b_c_count = c.objects.filter(b__a=a).count()
并像在模板中那样使用它:
a.b_c_count
如果你有很多 a 对象,这将是一个瓶颈,所以你可能想尝试extra 方法(并使用 as = a.objects.all().extra(*parameters)),或者甚至是原始 sql。
【讨论】: