我想为网站的不同页面创建多个子菜单。因此,我创建了一个名为“子菜单”的片段。
子菜单包含一个名为 submenu_items 的对象。在网页上,这转化为顶级导航。然后,每个 submenu_item 都有一个 dropdown_items。这样,在每个顶级链接下,我可以创建一个包含更多链接的下拉列表。
问题:
每当我创建一个新的 submenu_item 时,它都会创建 3 个 dropdown_item(下图中的示例)。我希望它能够提供“添加下拉项目”按钮。然后,我会根据需要一次创建一个。该代码似乎默认生成三个。
我尝试删除它们,保存片段。但是当我点击片段时,它们又出现了。我尝试重新创建整个模型并重新迁移所有内容。我仍然遇到同样的问题。
有人可以指出我可能做错了什么吗?我缺少的嵌套元素有一些规则吗?
@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'),
]