2011-01-13 11 views
0

widgetというオブジェクトをコンテキストの一部として渡してdjangoテンプレートをレンダリングすると、少し高価なメソッドがあるかもしれませんが、その結果を複数回表示したいことがあります。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テンプレート言語に存在しますか?

答えて

3
{% with work_result=widget.work %} 

より多くの情報を探すジャンゴdocs

+0

'WITH'、右のタグですが、あなたの構文が間違っています。 –

+0

ですが、この構文は現在の開発バージョンでは正しいはずですが、 –

関連する問題