1

Wagtail CMS 管理画面 (編集ページ ビューではなく、ページ リスト ビュー) でページを区別するにtitleは、私の場合は十分ではありません。1 つのページ タイプ (たとえばclass BlogPage) のページの長いリストがあり、これらのページの一部に同じtitle. そこで、このタイトルに2 番目の識別フィールド (ここdate_fromでは 、 a )を追加したいと思います。DateField

と思いました

class BlogPage(Page):
    ...
    def title(self):
    if self.date_from:
        return self.date_from + " - " + self.title
    else:
        return self.title

しかし、これは機能しません。page.titlemydefがないと、対応するWagtail-admin-template に使用されます。

短いバージョン: Wagtail-admin のタイトルに既存のフィールドを前/追加する方法は?

4

3 に答える 3

0

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.htmltemplates/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」呼び出し可能またはそのようなものを提供するフォークを提案してみてください。

于 2015-08-02T21:19:27.467 に答える
0

wagtailmodeladminは、まさに私が検索したことを実行しているようです。wagtailadmin を拡張しtitleて、ページ モデル ベースだけでなく、定義済みの一連のフィールドを表示します。Django 管理サイトにあるように。

このようにして、デフォルトの wagtailadmin ページ リストを変更しません。質問で試したようにhook、追加の wagtail-sidebar-navigation-entry としてリストされている追加ページで変更します。

他の回答のおかげで、私はこの可能性に出くわしました。

于 2015-08-05T22:32:05.173 に答える