2017-02-15 10 views
1

私はレストランのウェブサイトを構築し、メニュー項目を管理するためにオーナーのWagtail CMSスニペットを使用しています。メニュー項目のリストはかなり長くなっていますが、スニペット管理ウィンドウに検索入力フィールドを追加する方法があるのでしょうか?以下は、視覚的な参照のための注釈付きスクリーンショットです。ありがとうございました。Wagtail CMSスニペットにQルックアップを追加する

enter image description here

答えて

2

これは、簡単にあなたが必要とするすべてはあなたのwagtail_hooks.pyファイルにコードのこの部分を追加することで、セキレイのModelAdminのモジュール(http://docs.wagtail.io/en/v1.8.1/reference/contrib/modeladmin/)を使用することによって解決することができます。

from wagtail.contrib.modeladmin.options import (
    ModelAdmin, modeladmin_register) 
from .models import Product 


class ProductAdmin(ModelAdmin): 
    model = Product 
    menu_label = 'Product' # ditch this to use verbose_name_plural from model 
    menu_icon = 'date' # change as required 
    menu_order = 200 # will put in 3rd place (000 being 1st, 100 2nd) 
    add_to_settings_menu = False # or True to add your model to the Settings sub-menu 
    exclude_from_explorer = False # or True to exclude pages of this type from Wagtail's explorer view 
    list_display = ('title', 'example_field2', 'example_field3', 'live') 
    list_filter = ('live', 'example_field2', 'example_field3') 
    search_fields = ('title',) 

# Now you just need to register your customised ModelAdmin class with Wagtail 
modeladmin_register(ProductAdmin) 

それは製品モデルの別のメニュー項目を作成するデフォルトのDjango管理者リストのようにカスタマイズ可能です。つまり、リスティングにさまざまなフィルタとソートを簡単に追加できます。

これは非常に強力な機能で、私はクライアントに「スニペット」セクションをまったく表示しません。それはあまりにも単純で醜いです。代わりに、私はスニペットごとに別々のModelAdminを作成し、これは私にカスタマイズの力を与えます。

+1

ブリリアント!ちょうど私がWagtailのドキュメントにさらに詳しく調べる必要があることを示すために行く! –

2

検索バーを使用すると、検索システムでインデックスを作成するためにあなたのモデルを設定すると自動的に表示されます。ここで説明するように、wagtail.wagtailsearch.index.Indexedクラスから継承し、お使いのモデルにsearch_fieldsリストを定義することによってこれを行うことができます。http://docs.wagtail.io/en/v1.8.1/topics/search/indexing.html#wagtailsearch-indexing-models

(あなたがElasticsearchを使用している場合、あなたはまた、項目を追加する./manage.py update_indexを実行する必要があることに注意してください。検索インデックスへ)

関連する問題