W ::在多语言网站中使用modeladmin

时间:2018-01-17 15:35:04

标签: multilingual wagtail modeladmin

我有这个" PageModel"在我的网站上,并希望使用modeladmin在sperate菜单中添加/编辑它们。

from cities.models import City

class City(Page):
    cityobject = models.ForeignKey(City, on_delete=models.SET_NULL, null=True, blank=True)
    streamfield  = StreamField(BasicStreamBlock, null=True, blank=True)

    content_panels = Page.content_panels + [
        FieldPanel('cityobject', classname="full"),
        StreamFieldPanel('streamfield'),
    ]

我也将此方法用于多语言网站: http://docs.wagtail.io/en/v1.13.1/advanced_topics/i18n/duplicate_tree.html

我想要的是在wagtail admin中有一个按钮" Cities"在探险家旁边添加城市。但在我添加之前,我想选择哪个网站。例如:

城市 - > EN - >伦敦

城市 - > DE - >柏林

我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果您为可以存在于树的多个部分中的页面类型注册ModelAdmin类,那么当您使用'添加'在列表顶部的按钮添加新页面,应该会自动提示您选择父页面(在显示页面编辑器界面之前)。

行为实际上会根据登录用户的权限而更改。例如,如果用户可以将页面添加到树的任何部分,则会提示他们选择父页面应该是什么。但是,对于权限有限的用户,可能只能将页面添加到其中一个可能的父级 - 可能会自动识别一个可能的选项,并且不会提示用户。

编辑:

如果您想在Wagtail管理区域的菜单中添加其他菜单项,您可能需要考虑为您的应用使用ModelAdminGroup课程,并覆盖get_submenu_items方法以附加自定义返回前列表中的MenuItem个实例。如果您可以复制'添加'在列表顶部的按钮,你应该得到相同的条件'选择父母'功能如上所述。

如果您之前没有使用ModelAdminGroup课程,可以在文档中找到使用示例:http://docs.wagtail.io/en/latest/reference/contrib/modeladmin/#a-more-complicated-example