StopDesign
@StopDesign

Нужны ли макросы в шаблонах Django?

Привет.



Есть вопрос. Как сделать DRY без макросов в шаблонах, оставаясь при этом в рамках шаблонизатора, а не выходя во view.py?



Как известно, в django-templates нет макросов. А я хочу разместить сложную форму поиска в двух местах на странице. Как быть?



В сообществе есть смешное мнение, что «если что-то не реализовано, значит это плохой подход». Макросы совершенно явно не реализованы (правда, уже четыре года есть сниппет). Плохой ли это подход? Используете ли вы этот подход? Если не используете, то расскажите, как нужно делать.



Поясню, откуда вообще взялся этот вопрос. Давным-давно я решил использовать Jinja2 в качестве шаблонизатора для Django. После двух лет такой работы я понял, что главный плюс, которые он (она?) предоставляет — скорость рендеринга — перекрывается множеством недостатков: отсутствием поддержки со стороны IDE, неудобством отладки шаблона, медленным развитием, неудобством создания тегов и фильтров и т.д. Вернулся на django-templates, а там макросов нет и убогий if.



Спасибо.
  • Вопрос задан
  • 3288 просмотров
Пригласить эксперта
Ответы на вопрос 2
frol
@frol
Линуксоид
Больше всего, кажется, подходит inclusion tag.

PS Ничего плохого в сниппетах нет ИМХО
Ответ написан
savados
@savados
В 1.3 появилась возможность передавать переменные в тег include в духе

{% include "name_snippet.html" with person="Jane" greeting="Hello" "%}

Хотя правильнее использовать inclusion tag, как предложили выше.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы