LINUX.ORG.RU

Django, нужен совет

 , ,


0

1

Всем доброго времени суток, начал изучать Django. Разбираюсь с авторизацией, шаблонами. У меня такая задумка - в родительском шаблоне определяю меню, если пользователь не авторизован - в дочернем шаблоне переопределяю этот блок с меню, пишу туда одну кнопку для регистрации. И у меня вопрос - можно ли переопределять блоки в дочернем шаблоне по условию? Пробую писать что-то такое:

{% if not auth_mark %}

{% block top_content %}

тут html

{% endblock %}

{% endif %}

Но такое не прокатывает. В русскоязычной документации не нашел такое, возможно, плохо искал.

А не проще ли меню инклюдить и передавать ему auth_mark и внутри меню уже делать выбор?

Как минимум это выглядит логично и читается нормально.

А вариант с местным переопределением если и удастся как-нибудь запустить — окажется неподдерживаемым.

Goury ★★★★★
()

Или так {% block top_content %} {% if not auth_mark %}

тут html

{% endif %} {% endblock %} или по аналогии со следующим твиговским решение попробуй менять раскладку по условию {% extends условие ?'…layout1':'…layout2'%}

Jaberwock ★★★
()
Последнее исправление: Jaberwock (всего исправлений: 1)

Немного разобрался, если кому интересно - два разных шаблона index и index_auth. Ну и в views в зависимости от авторизации подключаю нужный.

dolblatanna
() автор топика

Можно переопределить блок и в нем уже писать условие:

{% extends "base.html" %}
{% block top_content %}
    {% if not auth_mark %}
        <div>тут html</div>
    {% else %}
        {{ super() }}
    {% endif %}
{% endblock %}
uralbash
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.