Python 无法在Django模板html中使用筛选器

Python 无法在Django模板html中使用筛选器,python,django,django-templates,Python,Django,Django Templates,我对Django项目有意见。我的情况如下: {% for subObject in mainObject.subObjects.all %} 这很好,每个子对象都得到了很好的迭代。我现在想要的是打印对象的子集,比如: {% for subObject in mainObject.subobjects.filter(someField=someValue) %} 到目前为止,我已经找到了关于我得到的错误的解决方案: Could not parse the remainder: '(someFi

我对Django项目有意见。我的情况如下:

{% for subObject in mainObject.subObjects.all %}
这很好,每个
子对象都得到了很好的迭代。我现在想要的是打印对象的子集,比如:

{% for subObject in mainObject.subobjects.filter(someField=someValue) %}
到目前为止,我已经找到了关于我得到的错误的解决方案:

Could not parse the remainder: '(someField=someValue)'
但没有找到一个解决方案,当使用过滤器时,线路应该如何不同。我只想调整
template.html
文件,因此我不想对
views.py
文件进行更改(在该文件中,所有内容都可以很好地工作)


如何做到这一点?

跟随@Yuji'Tomira'Tomita的评论

不要在模板中加入太多逻辑,引用:

哲学

如果你有编程方面的背景,或者你已经习惯了 将编程代码直接混合到HTML中的语言 要记住,Django模板系统不仅仅是Python 嵌入到HTML中。这是出于设计:模板系统旨在 表示,而不是程序逻辑

最好在视图中定义查询集并传递到模板:

视图:

模板:

{% for subObject in my_objects %}
    ...
{% endfor %}

希望这能有所帮助。

在视图中执行此操作。这是唯一的办法。不能在模板中使用python。如果你想做这样的事情,可以把
jinaj2
作为一个替换模板引擎。谢谢你的快速回复。那个请求变量的东西是个很棒的主意!实际上,这组子对象已经在一个mainObject循环中,所有内容都在megalomanic mainObject中给出,但是在模型中的适当位置添加def可能会使它变得更简单。不管怎样,感谢您指点我使用代码vs html作为逻辑。@mico当然,在模板中无法进行smth是一个常见问题,但这就是事情的处理方式,模板用于表示目的,用于显示数据,而不是查询和过滤。.关注点分离(MVC)是一项伟大的发明:)
{% for subObject in my_objects %}
    ...
{% endfor %}