Поддержка шаблонов Jinja2
Wagtail поддерживает шаблонизацию Jinja2 для всех функций на переднем плане. Более подробную информацию о каждом из тегов шаблонов ниже можно найти в документации Создание шаблонов.
Настройка Django
Django необходимо настроить для поддержки шаблонов Jinja2. Поскольку административная панель Wagtail написана с использованием стандартных шаблонов Django, Django необходимо настроить для использования обоих движков шаблонов. Добавьте конфигурацию бэкэнда шаблонов Jinja2 в параметр TEMPLATES для вашего приложения, как показано здесь:
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
# ... the rest of the existing Django template configuration ...
},
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'APP_DIRS': True,
'OPTIONS': {
'extensions': [
'wagtail.core.jinja2tags.core',
'wagtail.admin.jinja2tags.userbar',
'wagtail.images.jinja2tags.images',
],
},
}
]
Шаблоны Jinja должны быть размещены в каталоге jinja2/ вашего приложения. Например, стандартное расположение шаблонов для модели EventPage в приложении events будет events/jinja2/events/event_page.html.
По умолчанию в среде Jinja нет никаких функций или фильтров Django. Более подробная информация об этом есть в документации Django configuring Jinja for Django.
self в шаблонах
В шаблонах Django self может использоваться для ссылки на текущую страницу, блок потока или панель поля. В Jinja self зарезервировано для внутреннего использования. При написании шаблонов Jinja используйте page для ссылок на страницы, value для блоков потока и field_panel для панелей полей.
Теги, функции и фильтры шаблонов
pageurl()
Генерировать URL для экземпляра страницы:
<a href="{{ pageurl(page.more_information) }}">More information</a>
Для получения дополнительной информации см. pageurl
slugurl()
Генерировать URL для страницы со слагом:
<a href="{{ slugurl("about") }}">About us</a>
Для получения дополнительной информации см. slugurl
image()
Изменить размер изображения и вывести тег <img>:
{# Print an image tag #}
{{ image(page.header_image, "fill-1024x200", class="header-image") }}
{# Resize an image #}
{% set background=image(page.background_image, "max-1024x1024") %}
<div class="wrapper" style="background-image: url({{ background.url }});">
Для получения дополнительной информации см. Как использовать изображения в шаблонах
|richtext
Преобразовать внутреннее представление HTML Wagtail, расширяя внутренние ссылки на страницы и изображения.
{{ page.body|richtext }}
Для получения дополнительной информации см. Форматированный текст (фильтр)
wagtail_site
Возвращает объект Site, соответствующий текущему запросу.
{{ wagtail_site().site_name }}
См. wagtail_site для получения дополнительной информации
wagtailuserbar()
Вывести контекстное выпадающее меню Wagtail для редактирования страниц с переднего плана
{{ wagtailuserbar() }}
Для получения дополнительной информации см. Панель пользователя Wagtail
{% include_block %}
Вывести HTML-представление содержимого потока целиком, а также для каждого отдельного блока.
Позволяет передавать контекст шаблона (по умолчанию) в шаблон StreamField.
{% include_block page.body %}
{% include_block page.body with context %} {# The same as the previous #}
{% include_block page.body without context %}
Для получения дополнительной информации см. Отображение шаблона StreamField.
Примечание
Тег {% include_block %} разработан для тесного соответствия синтаксису и поведению {% include %} Jinja, поэтому он не реализует функцию версии Django, которая передает в контекст только указанные переменные.
© 2014-present Torchbox Ltd and individual contributors.
All rights are reserved.
Licensed under the BSD License.
https://docs.wagtail.org/en/v2.16.3/reference/jinja2.html