python - 可订购 Bug 中的鹡鸰可订购?

标签 python django navigation wagtail wagtail-snippet

我想为网站的不同页面创建多个子菜单。所以,我创建了一个名为“子菜单”的片段。

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

问题:
每当我创建一个新的 submenu_item 时,它都会创建 3 个 dropdown_items(下图中的示例)。我希望它能提供 ADD DROPDOWN ITEM 按钮。然后,我会根据需要一次创建一个。代码似乎默认生成三个。

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

有人可以指出我可能做错了什么吗?是否有一些我遗漏的嵌套元素的规则?

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

最佳答案

DropdownItem 类的用途是什么?我相信 SubmenuItem 和 DropdownItem 是多余的。如果您返回 wagtail 教程并查看图库图像示例,您会找到答案。

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

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

关于python - 可订购 Bug 中的鹡鸰可订购?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56093592/

相关文章:

python - 我一直收到缩进错误,我不应该这样

html - CSS3 子菜单未显示在焦点上

javascript - 通过Ajax发送文件到Django

jquery - 使用 Jquery 中的 if 语句禁用单击时的正常链接行为?

javascript - 导航在移动网站上消失

python - PyCharm - 如何摆脱 "Undefined step reference"警告

Python Selenium 设置多个 Chrome 首选项

python - 使用 Python Pandas 按顺序对值进行排序

python - Django:BASE_DIR 和 PROJECT_ROOT 之间的区别?

javascript - 在传单 "on()"方法中传递 JSON var