如何从Wagtail更改侧边栏?

时间:2015-08-05 02:20:27

标签: django wagtail

我按照Wagtail文档创建导航,但建议使用基于' Snippets',所以我想更改侧边栏以显示" ;导航"或"菜单"而不是' Snippets'那可能吗? enter image description here

但是,当我使用文档推荐用于侧边栏更改时:

sidebar_content_panels = [
    SnippetChooserPanel('advert', Advert),
    InlinePanel('related_links', label="Related links"),
]

因此它引发了一个AttributeError: enter image description here

3 个答案:

答案 0 :(得分:7)

此处sidebar_content_panels代码与此无关 - 它演示了如何在页面编辑器中添加额外的标签页,如果您的页面包含要保持独立的“主要内容”和“侧边栏内容”。这与Wagtail管理员的侧边栏菜单无关。

可以使用register_admin_menu_item挂钩(http://docs.wagtail.io/en/v1.0/reference/hooks.html#register-admin-menu-item)将新项目添加到管理菜单中,但这不支持编辑现有项目,因此无法更改“代码段”菜单的标签。但是,您可以查看'wagtailmodeladmin'软件包https://github.com/ababic/wagtailmodeladmin - 这允许您设置管理区域,其功能类似于代码段编辑器,但存在于菜单的顶层。

答案 1 :(得分:0)

Wagtail允许您通过扩展wagtail的ModelAdmin

在管理面板侧栏上创建自定义菜单

您可以查看示例和新v2.4 here的文档。

https://docs.wagtail.io/en/v2.4/reference/contrib/modeladmin/index.html#summary-of-features

答案 2 :(得分:0)

我不知道当时是否如此,但是现在您可以更改侧边栏导航的名称,而无需移动到ModelAdmin。这是通过使用“ construct_main_menu”钩子并通过将以下代码段添加到admin模型中来完成的:

@hooks.register("construct_main_menu")
def change_snippet_name(request, menu_items):
    for item in menu_items:
        if item.__class__.__name__ == "SnippetsMenuItem":
            item.label = "Contact persons"