Wagtail管理画面のページタイトルを変更する[get_admin_display_title]

管理画面で表示するページのタイトルだけを変更する方法を解説します。

Wagtail管理画面のページタイトルを変更する[get_admin_display_title]

Wagtailの管理画面では、デフォルトでは各ページのタイトルがそのままメニューの一覧に表示されます。

しかし、顧客向けにWagtailをCMSとして組み込んだWebサイトを納品する場合などは、わかりやすさを重視して名前を変更したいことがあります。例えば、デザインの問題でWebサイトのユーザー向けの表示は『Article』にしたいが、管理画面上では『記事一覧』の方がわかりやすかったりします。

その際には管理画面での表示名だけを変えることができると便利です。WagtailではPageモデルのget_admin_display_titleというメソッドを利用してこれを実現することができます。

変更前は記事一覧ページのTitleで指定した文言がそのまま利用されます。

変更前

このページの設定をオーバーライドしましょう。

# models.py

class ArticleListingPage(Page):
    ...

    # このメソッドをオーバーライドする
    def get_admin_display_title(self):
        return "記事一覧"

これだけで管理画面上での表示がアップデートされます。

変更後

この管理画面上での表示は、そのままでは管理画面内での検索には引っかからないようになっています。この挙動を変えるには、検索に利用するバックエンドをデフォルトのDatabase Backendから変更した上で、検索のインデックスに登録する必要があります。

# models.py

from wagtail.search import index

class ArticleListingPage(Page):
    ...

    def get_admin_display_title(self):
        return "記事一覧"

    # 検索にインデックスする
    search_fields = Page.search_fields + [
        ...
        index.SearchField('get_admin_display_title'),
    ]

ちょっとした変更ですが、管理画面を利用する人には便利な機能なのでぜひ利用してみてください。