Spec-Zone.ru › Wagtail

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

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

Spec-Zone.ru

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