Spec-Zone.ru › Wagtail 2

Поддержка шаблонов 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, которая передает в контекст только указанные переменные.

  • Предыдущая Шаблон проекта
  • Следующая Поддержка

Содержание страницы

  • Поддержка шаблонов Jinja2
    • Настройка Django
    • self в шаблонах
    • Теги, функции и фильтры шаблонов
      • pageurl()
      • slugurl()
      • image()
      • |richtext
      • wagtail_site
      • wagtailuserbar()
      • {% include_block %}

© 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

Spec-Zone.ru

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