Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Вопрос по правильному наследованию шаблонов [RSS Feed]

#1 Дек. 20, 2009 17:58:29

Mutagena
От:
Зарегистрирован: 2009-10-18
Сообщения: 295
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по правильному наследованию шаблонов

Встал такой вопрос касательно правильной организации наследования шаблонов.
Как наследовать шаблоны от главного?
Я сперва сделала вот так в главном шаблоне:

			{% 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 %}
Данный кусок шаблона находится в изменяемой части главного шаблона. Вообще правильно ли я делаю, или необходимо это делать каким-то другим образом?



Офлайн

#2 Дек. 20, 2009 19:32:50

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Вопрос по правильному наследованию шаблонов

Mutagena
Вообще правильно ли я делаю, или необходимо это делать каким-то другим образом?
А зачем все эти блоки? Почему бы не сделать один блок content
{% block content %}
{% endblock %}
И в наследниках его заполнять конкретными данными.



Офлайн

#3 Дек. 20, 2009 20:58:22

tezro
От:
Зарегистрирован: 2009-12-09
Сообщения: 90
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по правильному наследованию шаблонов

Mutagena
{% block archive %}{% endblock %}
Всё правильно делаете. Если в главном шаблоне есть этот блок, а в других шаблонах, использующих его, этот блок переопределён, то блок будет показан. Иначе - нет.

Если в главном шаблоне использовать {% block archive %}Default content{% endblock %}, то это будет дефолтным контентом блока, который также можно переопределять в других шаблонах.



Офлайн

#4 Дек. 20, 2009 21:15:40

Mutagena
От:
Зарегистрирован: 2009-10-18
Сообщения: 295
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по правильному наследованию шаблонов

Daevaorn, а там структура разная у наследников, одним блоком не обойтись.
tezro, спасибо, душа теперь спокойна.



Офлайн

#5 Дек. 20, 2009 21:28:03

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Вопрос по правильному наследованию шаблонов

Mutagena
Daevaorn, а там структура разная у наследников, одним блоком не обойтись.
Так не имеет значение какая структура у наследников. В базовом шаблоне вы просто описываете плейсхолдеры для контента наследников.



Офлайн

#6 Дек. 20, 2009 21:51:58

Mutagena
От:
Зарегистрирован: 2009-10-18
Сообщения: 295
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по правильному наследованию шаблонов

Daevaorn, да просто не хочется делать трёхуровниевое наследование, так как сама структура сайта достаточно проста.



Офлайн

  • Начало
  • » Django
  • » Вопрос по правильному наследованию шаблонов[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version