title
は実際の Django モデル属性です。オーバーライドしようとしないでください: https://docs.djangoproject.com/en/dev/topics/db/models/#field-name-hiding-is-not-permitted
wagtailadmin/pages/list.html の実際の管理テンプレートは、ループ内でページのリストを生成し、include() を介して{% for page in pages %}
呼び出します。そのため、コードを調べたところ、Wagtail 自体ではこれがサポートされていません。他のインクルードを確認してください。{{ page.title}}
templates/wagtailadmin/pages/listing/_page_title_explore.html
templates/wagtailadmin/pages/listing/*
ただし、Django は、1 つのアプリのテンプレートを独自のテンプレートでオーバーライドすることをサポートしています。このテンプレートをプロジェクトのテンプレート フォルダーにコピーし、同じパスを保持できます (たとえば、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
これの欠点は、 Wagtail が更新されるたびに、独自のバージョンを更新する必要があることです。Github でイシューを送信し、「admin_title」呼び出し可能またはそのようなものを提供するフォークを提案してみてください。