Код шаблона шаблона Django - PullRequest
2 голосов
/ 15 июля 2010

Я новичок в Django и, создав свой первый проект, я понял, что в нем много моего стандартного кода (списки на боковой стороне моей страницы). Я должен воссоздавать их при каждом просмотре, и я пытаюсь придерживаться DRY, но я каждый раз переписываю код. Есть ли способ унаследовать от моих базовых представлений и просто изменить несколько объектов?

Спасибо, Джеймс

Ответы [ 5 ]

3 голосов
/ 15 июля 2010

Возможно, вы захотите использовать контекстный процессор для этой работы.

3 голосов
/ 15 июля 2010

Для списков последних статей и т. Д. пользовательские теги шаблонов - это то, что вам нужно.В то время как обработчик контекста автоматически заполнит ваш контекст списками, тег шаблона может фактически сделать это, плюс создать всю HTML-разметку для самого столбца.

3 голосов
/ 15 июля 2010

Да, вы захотите изучить наследование шаблонов , которое позволяет вам совместно использовать общие элементы между шаблонами, и тег шаблона {% include %}, который позволяет создавать шаблон многократного использования«фрагменты», которые могут быть включены в другие шаблоны.

Редактировать : перечитывая вопрос, звучит так, будто вы говорите о шаблонном коде, который есть в ваших функциях / методах представлениячто вы используете для создания контекста, совместно используемого несколькими шаблонами.В этом случае правильный ответ Мипади: посмотрите на процессоры контекста.

1 голос
/ 16 июля 2010

Для больших блоков статического HTML, которые появляются постоянно, вы можете использовать тег include template:

{% include 'static/some_file.html' %}

Включения хранятся в файловой системе вашего шаблона, как и шаблоны.

0 голосов
/ 15 июля 2010

Если по каким-то причинам вы не решили использовать контекстный процессор (здесь это решение выглядит разумным), вы всегда можете инкапсулировать некоторую общую логику в функции util и использовать их в своих представлениях.взгляд на Общие представления - это хороший способ «остаться сухим» с вашим кодом

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