Использование шаблонов Django в качестве фрагментов - PullRequest
3 голосов
/ 25 февраля 2012

Можно ли создать шаблон django, который можно использовать (вкладывать) внутри другого шаблона django?Я знаю команду extends, но не думаю, что это то, что я ищу.Может быть, я просто не знаю, как заставить это работать в этой ситуации.Позвольте мне привести пример.

Обычно в большинстве веб-приложений отображается статус входа пользователя, я ищу способ указать логику для этого (с соответствующими "Welcome Mr. Foo" и "Нужно зарегистрироваться? ") В небольшой шаблон, например:

loginstatus.html

{% if LoggedIn %}
    Message message link link
{% else %}
    Other message different link
{% endif %}

Теперь я решил, что мне придется вызвать механизм рендеринга и сохранить этот выводв переменную, затем передайте его базовому шаблону при его рендеринге, чтобы мой базовый шаблон выглядел следующим образом:

index.html

<html>
  <head>
  </head>
  <body>
    <div id="Header">{{ LoginStatus }}</div>
  </body>
</html>

Теперь я знаю, что этоДовольно неудачный пример, он сэкономил мне всего 5 строк, но я планирую сделать это для создания панели навигации на основе роли пользователя, отображения ленты новостей с учетом позиции пользователя или выбранного интереса и т. д.

ИтакКороче говоря, возможно ли (потому что я не смог заставить его работать так, как я его представляю) предварительно отрендерить шаблон django, а затем включить этот визуализированный html в другой шаблон django?

Надеюсьне важноs, но я также работаю с Google App Engine, если это что-то изменит.

1 Ответ

6 голосов
/ 26 февраля 2012

В этом конкретном примере вы можете использовать тег include для включения фрагмента.

Для панели навигации и новостной ленты теги пользовательских шаблонов - в частности, теги включения - было бы более уместно.

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