擅长:python、mysql、java
<p>我经常遇到这个问题,并且经常使用“add a method”解决方案。但是,在某些情况下,“添加一个方法”或“在视图中计算它”确实不起作用(或者不起作用)。E、 当你缓存模板片段并且需要一些非平凡的数据库计算来产生它时。除非需要,否则您不想做DB工作,但在深入了解模板逻辑之前,您不会知道是否需要。</p>
<p>其他一些可能的解决方案:</p>
<ol>
<li><p>使用{%expr<;expression>;作为<a href="http://www.djangosnippets.org/snippets/9/" rel="noreferrer">http://www.djangosnippets.org/snippets/9/</a>中找到的<;var_name>;%}模板标记该表达式是任何合法的Python表达式,模板的上下文作为本地作用域。</p></li>
<li><p>更改模板处理程序。Jinja2(<a href="http://jinja.pocoo.org/2/" rel="noreferrer">http://jinja.pocoo.org/2/</a>)的语法与Django模板语言几乎相同,但具有完整的Python功能。它也更快。您可以进行批量处理,也可以将其使用限制在您正在处理的模板上,但是对于设计器维护的页面使用Django的“安全”模板。</p></li>
</ol>