「admin.site.unregister(Value)」と同等のことを行う必要がありますが、wagtail_hooks.py で「modeladmin_register(Value)」を使用して wagtailmodeladmin に登録されたモデルの場合です。どうやってそれをしますか?
3 に答える
1
組み込みの方法はありませんが、独自の方法を追加したい場合:
# helpers.py
from wagtail import hooks
def replace_hook(hook_name, original_fn):
hooks._hooks[hook_name].remove((original_fn, 0))
def inner(fn):
hooks.register('register_page_listing_buttons', fn)
return fn
return inner
「子ページの追加」以外のすべてのボタンをリスト ビューから削除したいとします。
# wagtail_hooks.py
import helpers
@replace_hook('register_page_listing_buttons', page_listing_buttons)
def remove_redundant_buttons(page, page_perms, is_parent=False):
buttons = page_listing_buttons(page, page_perms, is_parent)
if isinstance(page, models.BasePage):
return buttons
else:
# for non-subclasses-of-BasePage allow only adding children
allowed_urls = ['add_subpage']
return [
item for item in buttons
if item.url and resolve(item.url).url_name in allowed_urls
]
結果:
于 2018-04-13T10:29:02.807 に答える