• en
  • Language: ru
  • 3.7.x
  • Documentation version: 3.9

Как работать с шаблонами

Приложение может повторно использовать шаблоны cms, смешивая теги шаблонов cms и обычного языка шаблонов django.

static_placeholder

Обычный placeholder нельзя использовать в шаблонах, используемых внешними приложениями, вместо него используйте static_placeholder.

CMS_TEMPLATE

Добавлено в версии 3.0.

CMS_TEMPLATE - это контекстная переменная, доступная в контексте; она содержит путь к шаблону для страниц CMS и приложений, использующих apphooks, и шаблон по умолчанию (т.е.: первый шаблон в CMS_TEMPLATES) для URL, не управляемых CMS.

В основном его полезно использовать в теге шаблона extends в шаблонах приложений для получения текущего шаблона страницы.

Пример: шаблон cms

{% load cms_tags %}
<html>
    <body>
    {% cms_toolbar %}
    {% block main %}
    {% placeholder "main" %}
    {% endblock main %}
    </body>
</html>

Пример: шаблон заявления

{% extends CMS_TEMPLATE %}
{% load cms_tags %}
{% block main %}
{% for item in object_list %}
    {{ item }}
{% endfor %}
{% static_placeholder "sidebar" %}
{% endblock main %}

CMS_TEMPLATE запоминает путь к шаблону cms, чтобы шаблон приложения мог динамически импортировать его.

render_model

Добавлено в версии 3.0.

render_model позволяет редактировать модели django из фронтенда, используя редактор фронтенда django CMS.