g可订购,可订购用于导航错误?

时间:2019-05-11 19:27:38

标签: python django navigation wagtail wagtail-snippet

我想为网站的不同页面创建多个子菜单。因此,我创建了一个名为“子菜单”的代码段。

子菜单包含一个名为submenu_items的对象。在网页上,它转换为最高级别的导航。然后,每个submenu_item都有一个dropdown_items。这样,我可以在每个顶级链接下创建一个包含更多链接的下拉菜单。

问题:
每当我创建一个新的submenu_item时,它都会创建3个dropdown_items(例如下面的照片中的示例)。我希望它提供“添加下降项”按钮。然后,我会根据需要一次创建一个。该代码似乎默认情况下会生成三个。

我尝试删除它们,保存了代码段。但是,当我单击摘要时,它们又出现了。我尝试重新创建整个模型并重新迁移所有内容。我仍然遇到同样的问题。

有人可以指出我可能做错了什么吗?对于缺少的嵌套元素有一些规定吗?

enter image description here

@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'),
    ]

1 个答案:

答案 0 :(得分:0)

DropdownItem类的目的是什么?我相信SubmenuItem和DropdownItem是多余的。如果您回到the教程,并查看图库图片示例,就会找到答案。

http://docs.wagtail.io/en/v2.0/getting_started/tutorial.html#images

作者创建了BlogPageGalleryImage,它继承了Orderable。您可以为SubmenuItem使用相同的ParentalKey结构。