A пользовательский тег шаблона - хороший способ для достижения этой цели, поскольку он предоставляет место для запуска пользовательского кода Python (для извлечения необходимых данных) перед выводом результатов в шаблон, либо непосредственно в видестрока или отрисовка шаблона.Например, если у вас есть поле footer_text
на модели HomePage
и вы хотите отображать текст нижнего колонтитула HomePage
с слагом 'home' на каждой странице, вы можете определить пользовательский тег следующим образом:
@register.inclusion_tag('myapp/includes/footer.html')
def footer():
homepage = HomePage.objects.get(slug='home')
return {'footer_text': homepage.footer_text}
Вы также можете посмотреть на модуль Настройки сайта Wagtail как способ определения глобального контента для повторного использования на сайте (хотя в нем отсутствуют некоторые функции, которые вы получили бы отопределение его на модели страницы, например, рабочий процесс модерации и история изменений).