Джанго: избегать нескольких оценок одного и того же выражения в шаблоне? - PullRequest
0 голосов
/ 13 января 2011

При передаче объекта с именем 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?

Ответы [ 2 ]

4 голосов
/ 13 января 2011
3 голосов
/ 13 января 2011
{% with work_result=widget.work %}

Посмотрите Джанго документы для получения дополнительной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...