Найти - Пользователи
Полная версия: Custom template tag, как рендерить в разные шаблоны?
Начало » Django » Custom template tag, как рендерить в разные шаблоны?
1
yegorkowalew
Здравствуйте, помогите пожалуйста. Нужно сделать что-то наподобии этого:

def Body(block_id):
if block_id>2:
templ = 'txt_blocks/txt_block_pict_right.html'
else:
templ = 'txt_blocks/txt_block_pict_left.html'
return {'id':block_id}
register.inclusion_tag(templ)(Body)
Тоесть я хочу в зависимости от ситуации рендерить свой тег в разные шаблоны.
В официальной документации не разобрлся, гугел тоже не помог. Было бы очень хорошо увидеть такой короткий, но только работающий код. Зарание благодарен
wonderfulll
{% ifequal block_id  1 %}
{% include "txt_blocks/txt_block_pict_left.html" %}
{% endifequal %}
{% ifequal block_id 2 %}
{% include "txt_blocks/txt_block_pict_left.html" %}
{% endifequal %}
Самое простое решение, сделать через темплейты.
Если используешь дев. версию Джанги то:
{% if block_id > 2 %}
{% include "txt_blocks/txt_block_pict_left.html" %}
{% else %}
{% include "txt_blocks/txt_block_pict_left.html" %}
{% endif %}
подробнее тут http://docs.djangoproject.com/en/dev/ref/templates/builtins/#if
yegorkowalew
wonderfulll
{% ifequal block_id  1 %}
{% include "txt_blocks/txt_block_pict_left.html" %}
{% endifequal %}
{% ifequal block_id 2 %}
{% include "txt_blocks/txt_block_pict_left.html" %}
{% endifequal %}
Спасибо за совет, я об етом думал. Но считаю что такой вариант можно юзать только для себя. А если по правильному то думаю что у дизайнера должен быть один тег на подобии {{ block_tekst }} и никаких больше заморочек.

Решил сделать не так. Во вьюшке проходить по всем блокам, render_to_string в нужные мне шаблоны а потом уже отдавать на страницу полученый хтмл. Завтра, если кому интересно, постараюсь подробнее отписать…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB