我的Django项目存在问题。我的情况如下:
{% for subObject in mainObject.subObjects.all %}
这很好用,每个subObject
都可以很好地迭代。我现在想要的是打印一个对象的子集,如:
{% for subObject in mainObject.subobjects.filter(someField=someValue) %}
到目前为止,我已经搜索了有关我得到的错误的解决方案:
Could not parse the remainder: '(someField=someValue)'
但是没有找到关于在使用过滤器时线条应该如何不同的解决方案。我想调整template.html
文件,因此我不想在views.py
文件上进行更改(所有内容都可以正常工作)。
如何实现这一目标?
答案 0 :(得分:1)
关注@ Yuji'Tomira'Tomita的评论..
不要在模板中加入太多逻辑,引自django docs:
哲学
如果你有编程背景,或者你已经习惯了 将编程代码直接混合到HTML中的语言,你会想要的 要记住,Django模板系统不仅仅是Python 嵌入到HTML中。这是设计:模板系统的意思 表达陈述,而不是程序逻辑。
最好在视图中定义查询集并传递给模板:
视图:
def my_view(request):
...
my_objects = mainObject.subobjects.filter(someField=someValue)
return render(request, 'mytemplate.html', {'my_objects': my_objects})
模板:
{% for subObject in my_objects %}
...
{% endfor %}
希望有所帮助。