我有这个" 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 - >柏林
我该怎么做?
答案 0 :(得分:0)
如果您为可以存在于树的多个部分中的页面类型注册ModelAdmin类,那么当您使用'添加'在列表顶部的按钮添加新页面,应该会自动提示您选择父页面(在显示页面编辑器界面之前)。
行为实际上会根据登录用户的权限而更改。例如,如果用户可以将页面添加到树的任何部分,则会提示他们选择父页面应该是什么。但是,对于权限有限的用户,可能只能将页面添加到其中一个可能的父级 - 可能会自动识别一个可能的选项,并且不会提示用户。
编辑:
如果您想在Wagtail管理区域的菜单中添加其他菜单项,您可能需要考虑为您的应用使用ModelAdminGroup
课程,并覆盖get_submenu_items方法以附加自定义返回前列表中的MenuItem
个实例。如果您可以复制'添加'在列表顶部的按钮,你应该得到相同的条件'选择父母'功能如上所述。
如果您之前没有使用ModelAdminGroup
课程,可以在文档中找到使用示例:http://docs.wagtail.io/en/latest/reference/contrib/modeladmin/#a-more-complicated-example