Spec-Zone.ru › Wagtail 3

Поддержка шаблонов Jinja2

Wagtail поддерживает шаблоны Jinja2 для всех элементов переднего плана. Более подробную информацию о каждом из тегов шаблонов ниже можно найти в документации создания шаблонов.

Настройка Django

Для поддержки шаблонов Jinja2 необходимо настроить Django. Поскольку админка 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.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 для страницы со slug:

<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 }}

Для получения дополнительной информации см. Фильтр Rich text

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 %} разработан для точного соответствия синтаксису и поведению Jinja {% include %}, поэтому он не реализует функцию версии Django, которая передает в контекст только указанные переменные.

© 2014-present Torchbox Ltd and individual contributors.
All rights are reserved.
Licensed under the BSD License.
https://docs.wagtail.org/en/v3.0.3/reference/jinja2.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API