修改Wagtail发布下拉列表(每个应用程序)

sha*_*ker 4 django wagtail

我想重新配置默认的“发布”菜单。默认配置是这样的:

默认发布菜单

我想将“发布”设为默认操作,然后将其移至顶部。我也想删除“提交审核”,因为我们的网站目前不需要该功能。

理想情况下,我希望能够逐个应用覆盖菜单配置-将来,我们可能会在网站的其他部分中使用其他配置。

这可能吗?

gas*_*man 5

恐怕目前这是不可能的 - 菜单项已修复在wagtailadmin/pages/create.htmledit.html中。

register_page_action_menu_item根据Yannic Hamann 的回答,从 Wagtail 2.4 开始,可以使用钩子实现这一点。此外,Wagtail 2.7(在撰写本文时尚未发布)提供了一个construct_page_listing_buttons用于修改现有选项的钩子。


Yan*_*ann 5

您可以通过w钩注册一个自定义菜单项,从而将新项添加到操作菜单。为此,请wagtail_hooks.py在您现有的任何Django应用中创建一个名为的文件。

from wagtail.core import hooks
from wagtail.admin.action_menu import ActionMenuItem

class GuacamoleMenuItem(ActionMenuItem):
    label = "Guacamole"

    def get_url(self, request, context):
        return "https://www.youtube.com/watch?v=dNJdJIwCF_Y"


@hooks.register('register_page_action_menu_item')
def register_guacamole_menu_item():
    return GuacamoleMenuItem(order=10)
Run Code Online (Sandbox Code Playgroud)

资源

如果要删除现有的菜单项:

@hooks.register('construct_page_action_menu')
def remove_submit_to_moderator_option(menu_items, request, context):
    menu_items[:] = [item for item in menu_items if item.name != 'action-submit']
Run Code Online (Sandbox Code Playgroud)

默认按钮SAVE DRAFT仍然是硬编码的,因此无法轻松配置。看这里