Найти - Пользователи
Полная версия: Вопрос по правильному наследованию шаблонов
Начало » Django » Вопрос по правильному наследованию шаблонов
1
Mutagena
Встал такой вопрос касательно правильной организации наследования шаблонов.
Как наследовать шаблоны от главного?
Я сперва сделала вот так в главном шаблоне:
			{% ifequal section 'mp' %}
{% block main_page %}{% endblock %}
{% endifequal %}

{% ifequal section 'archive' %}
{% block archive %}{% endblock %}
{% endifequal %}

{% ifequal section 'post' %}
{% block post %}{% endblock %}
{% endifequal %}

{% ifequal section 'all_tags' %}
{% block all_tags %}{% endblock %}
{% endifequal %}

{% ifequal section 'tag' %}
{% block tag %}{% endblock %}
{% endifequal %}

{% ifequal section 'page' %}
{% block page %}{% endblock %}
{% endifequal %}
Но это не заработало. Тогда я просто написала вот так:
			{% block main_page %}{% endblock %}
{% block archive %}{% endblock %}
{% block post %}{% endblock %}
{% block all_tags %}{% endblock %}
{% block tag %}{% endblock %}
{% block page %}{% endblock %}
Данный кусок шаблона находится в изменяемой части главного шаблона. Вообще правильно ли я делаю, или необходимо это делать каким-то другим образом?
Александр Кошелев
Mutagena
Вообще правильно ли я делаю, или необходимо это делать каким-то другим образом?
А зачем все эти блоки? Почему бы не сделать один блок content
{% block content %}
{% endblock %}
И в наследниках его заполнять конкретными данными.
tezro
Mutagena
{% block archive %}{% endblock %}
Всё правильно делаете. Если в главном шаблоне есть этот блок, а в других шаблонах, использующих его, этот блок переопределён, то блок будет показан. Иначе - нет.

Если в главном шаблоне использовать {% block archive %}Default content{% endblock %}, то это будет дефолтным контентом блока, который также можно переопределять в других шаблонах.
Mutagena
Daevaorn, а там структура разная у наследников, одним блоком не обойтись.
tezro, спасибо, душа теперь спокойна.
Александр Кошелев
Mutagena
Daevaorn, а там структура разная у наследников, одним блоком не обойтись.
Так не имеет значение какая структура у наследников. В базовом шаблоне вы просто описываете плейсхолдеры для контента наследников.
Mutagena
Daevaorn, да просто не хочется делать трёхуровниевое наследование, так как сама структура сайта достаточно проста.
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