Python Django:避免在模板中对同一表达式进行多次求值?

Python Django:避免在模板中对同一表达式进行多次求值?,python,django,templates,variables,Python,Django,Templates,Variables,当将名为widget的对象作为上下文的一部分传递给呈现django模板时,我可能有一种方法有点昂贵,但我希望不止一次地显示它的结果 Python: class Widget: def work(self): # Do something expensive 模板 This is a widget, the result of whose work is {{widget.work}}. Do you want to save {{widget.work}} or disca

当将名为
widget
的对象作为上下文的一部分传递给呈现django模板时,我可能有一种方法有点昂贵,但我希望不止一次地显示它的结果

Python:

class Widget:
   def work(self):
      # Do something expensive
模板

This is a widget, the result of whose work is {{widget.work}}.  Do
you want to save {{widget.work}} or discard {{widget.work}}?
很明显,我可以通过在视图代码中对方法进行一次评估,然后将结果传递给用户来解决这个问题,但这似乎太过耦合视图和模板了。模板作者是否有办法将值隐藏起来,以便以后在模板中重复使用?我想这样做:

{% work_result = widget.work %}
This is a widget, the result of whose
work is {{work_result}}.  Do you want to save {{work_result}} or discard {{work_result}}?
django模板语言中是否存在这样的构造?


查看Django以了解更多信息

,但此语法对于当前开发版本应该是正确的,
{% with work_result=widget.work %}