我想为网站的不同页面创建多个子菜单。因此,我创建了一个名为“子菜单”的代码段。
子菜单包含一个名为submenu_items的对象。在网页上,它转换为最高级别的导航。然后,每个submenu_item都有一个dropdown_items。这样,我可以在每个顶级链接下创建一个包含更多链接的下拉菜单。
问题:
每当我创建一个新的submenu_item时,它都会创建3个dropdown_items(例如下面的照片中的示例)。我希望它提供“添加下降项”按钮。然后,我会根据需要一次创建一个。该代码似乎默认情况下会生成三个。
我尝试删除它们,保存了代码段。但是,当我单击摘要时,它们又出现了。我尝试重新创建整个模型并重新迁移所有内容。我仍然遇到同样的问题。
有人可以指出我可能做错了什么吗?对于缺少的嵌套元素有一些规定吗?
@register_snippet
class Submenu(ClusterableModel):
text = models.CharField(max_length=255)
subsite_url = models.CharField(max_length=255)
panels = [
FieldPanel('text'),
FieldPanel('subsite_url'),
InlinePanel('submenu_items', label="Submenu Items"),
]
def __str__(self):
return self.text
class SubmenuItem(ClusterableModel, Orderable):
page = ParentalKey(Submenu, on_delete=models.CASCADE, related_name='submenu_items')
menu_item = models.CharField(blank=True, max_length=250)
internal_url = models.CharField(blank=True, max_length=250)
panels = [
FieldPanel('menu_item'),
FieldPanel('internal_url'),
InlinePanel('dropdown_items', label="Dropdown Items"),
]
class DropdownItem(Orderable):
page = ParentalKey(SubmenuItem, on_delete=models.CASCADE, related_name='dropdown_items')
menu_item = models.CharField(blank=True, max_length=250)
internal_url = models.CharField(blank=True, max_length=250)
panels = [
FieldPanel('menu_item'),
FieldPanel('internal_url'),
]
答案 0 :(得分:0)
DropdownItem类的目的是什么?我相信SubmenuItem和DropdownItem是多余的。如果您回到the教程,并查看图库图片示例,就会找到答案。
http://docs.wagtail.io/en/v2.0/getting_started/tutorial.html#images
作者创建了BlogPageGalleryImage,它继承了Orderable。您可以为SubmenuItem使用相同的ParentalKey结构。