title
— это фактический атрибут модели Django, не пытайтесь его переопределить: https://docs.djangoproject.com/en/dev/topics/db/models/#field-name-hiding-is-неразрешено
Фактический шаблон администратора из wagtailadmin/pages/list.html генерирует список страниц в цикле, используя {% for page in pages %}
, и повсеместно вызывает {{ page.title}}
через include (templates/wagtailadmin/pages/listing/_page_title_explore.html
). Таким образом, основываясь на проверке кода, в самой трясогузке нет поддержки. Проверьте, что другие включают templates/wagtailadmin/pages/listing/*
.
Однако Django поддерживает замену шаблонов одного приложения вашими собственными. Вы можете скопировать этот шаблон в папку шаблонов вашего проекта, сохранив тот же путь (например, templates/wagtailadmin/pages/listing/_page_title_explore.html
при условии, что ваш проект настроен с каталогом шаблонов).
Вам придется заменить вызовы page.title
своей собственной версией. Фильтр или тег могут упростить эту задачу. Добавьте следующий фильтр в теги шаблона (например, myapp/templatetetags/myapp_tags.py
):
register = template.Library()
@register.filter
def uniquify_title(page):
specific_page = page.specific
try:
return specific_page.date_from.strftime("%Y-%m-%d") + " - " + specific_page.title
except AttributeError:
return specific_page.title
А затем замените использование {{ page.title}}
в шаблоне, начиная со строк 7 и 9, на:
{{ page|uniquify_title }}
Недостатком этого является то, что вы должны обновлять свою собственную версию list.html
каждый раз, когда обновляется трясогузка. Вы можете попробовать отправить вопрос на Github и предложить форк, который предоставляет вызываемый «admin_title» или что-то в этом роде.
person
Brett
schedule
02.08.2015