一尘不染

如何在Django模板中执行查询过滤

django

我需要从Django模板中执行过滤查询,以获取与视图中的python代码等效的一组对象:

queryset = Modelclass.objects.filter(somekey=foo)

在我的模板中,我想做

{% for object in data.somekey_set.FILTER %}

但我似乎无法找出如何编写FILTER。


阅读 387

收藏
2020-03-29

共1个答案

一尘不染

你不能这样做,这是设计使然。Django框架的作者打算将表示代码与数据逻辑严格分开。过滤模型是数据逻辑,而输出HTML是表示逻辑。

因此,你有几种选择。最简单的方法是进行过滤,然后将结果传递给render_to_response。或者,你可以在模型中编写一个方法,以便说出来{% for object in data.filtered_set %}。最后,你可以编写自己的模板标签,尽管在这种情况下,我建议你这样做。

2020-03-29