我需要从Django模板中执行过滤查询,以获取与视图中的python代码等效的一组对象:
queryset = Modelclass.objects.filter(somekey=foo)
在我的模板中,我想做
{% for object in data.somekey_set.FILTER %}
但我似乎无法找出如何编写FILTER。
你不能这样做,这是设计使然。Django框架的作者打算将表示代码与数据逻辑严格分开。过滤模型是数据逻辑,而输出HTML是表示逻辑。
因此,你有几种选择。最简单的方法是进行过滤,然后将结果传递给render_to_response。或者,你可以在模型中编写一个方法,以便说出来{% for object in data.filtered_set %}。最后,你可以编写自己的模板标签,尽管在这种情况下,我建议你这样做。
render_to_response
{% for object in data.filtered_set %}