Форум сайта python.su
Привет всем!
Джангу я изучаю совсем недавно и вот возникла трабла… Пытаюсь сделать такое:
<p class="post">
{{ post.body|apply_markup:"{{ post.markup.sys_name }}" }}
</p>
<p class="post">
{% ifequal post.markup.sys_name "linebreaks" %}
{{ post.body|apply_markup:"linebreaks" }}
{% endifequal %}
{% ifequal post.markup.sys_name "markdown" %}
{{ post.body|apply_markup:"markdown" }}
{% endifequal %}
</p>
Офлайн
Хм… Интересная идея. Этот фильтр из django-markup.
Я подумаю, как его правильно переписать.
Джанго-шаблоны мне одному кажутся убогими? Да, я не много шаблонных движков видел и поэтому не могу объективно судить, но с некоторыми простейшими вещами они не справляются.
Офлайн
ZZZМожет быть просто стоит научиться их готовить?
Джанго-шаблоны мне одному кажутся убогими? Да, я не много шаблонных движков видел и поэтому не могу объективно судить, но с некоторыми простейшими вещами они не справляются.
>>> Template('{{ foo|join:bar }}').render(Context({'foo': [1, 2], 'bar': '<br>'}))
u'1<br>2'
Офлайн
DaevaornВполне возможно. :-) Это практически первое впечатление.
Может быть просто стоит научиться их готовить?
{{ dictionary.{{ key_variable }} }}
Офлайн
lorienЯсно.
Нет, только если свой тэг или фильтр написать.
Офлайн
Как всегда все повторяется.. Намерено шаблоны сделаны урезанными и не надо ничего расширять - меняйте подход.
Офлайн
EvgХм… Я всегда считал, что перед передачей данных во вью (MVC – в данном случае в шаблоны), нужно продумать схему этих данных. Схема должна быть понятной, но не избыточной.
Как всегда все повторяется.. Намерено шаблоны сделаны урезанными и не надо ничего расширять - меняйте подход.
Офлайн
ZZZШаблон должен заниматься только выводом, никаких расчетов он не должен делать.
Вью же должен иметь средства по обработки этих данных
ZZZЕсли нужно получить какие то данные внутри шаблона, то получение данных можно оформить зарание в виде метода и далее в шаблоне просто {{node.get_sub_node}} Таким образом логика оказалась не в шаблоне а внутри метода.
Как мне, получить данные из активной ветви дерева?
Отредактировано (Май 3, 2010 16:13:09)
Офлайн
EvgЯ немного не правильно описал. Вью (опять же, в терминах MVC) должен уметь получать данные.
Шаблон должен заниматься только выводом, никаких расчетов он не должен делать.
EvgЯ тебе одно, ты мне другое.
Если нужно получить какие то данные внутри шаблона, то получение данных можно оформить зарание в виде метода и далее в шаблоне просто {{node.get_sub_node}} Таким образом логика оказалась не в шаблоне а внутри метода.
Другой вариант получения данных и их вывода это тег - на вход даете параметры {%process_data node %} на выходе шаблон с обработанными данными, которые подготовлены внутри ф-и тега.
Офлайн
ZZZПередавайте модели или объекты с подготовленными методами и все будет проще) Словарь с раскиданными фрагментами информации слишком сырые данные для шаблона.
Я передаю словарь с данными и имя активного элемента
Офлайн