gpt4 book ai didi

django-admin - 如何在 wagtail modeladmin 中注销模型?

转载 作者:行者123 更新时间:2023-12-03 19:48:03 29 4
gpt4 key购买 nike

我需要做相当于... 'admin.site.unregister(Value)' 但是对于在 wagtail_hooks.py 中使用 'modeladmin_register(Value)' 向 wagtailmodeladmin 注册的模型。你是怎样做的?

最佳答案

没有内置的方式来做到这一点,但如果你想添加自己的方式:

# 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

假设我们想从 ListView 中删除除“添加子页面”之外的所有按钮:
# 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
]

结果:

enter image description here

关于django-admin - 如何在 wagtail modeladmin 中注销模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38793852/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com