如何在w中添加多级菜单支持(支持基于非wa的页面)

时间:2019-07-08 12:36:51

标签: menu submenu wagtail

如何添加对自定义菜单的支持,这些菜单也可用于非基于Wagtail的页面。

  1. 例如,通过直接向注册页面(例如“ / account / registration”)提供相对网址)
  2. 例如,通过直接向外部网页(例如“ www.stackoverflow.com”)提供绝对网址

我发现了一个非常有趣的项目:setInterval 不幸的是在主菜单中不支持子菜单。

1 个答案:

答案 0 :(得分:2)

关于Wagtail的一件事是,我所说的数据树仅由页面组成(称为page tree)。该树用作导航的基础,但是,当然,有时您可能希望此树中的导航项不是页面。我可以通过继承Page来完成您想做的事情:

from django.http import HttpResponseRedirect

class Node(Page):

    subpage_types = [your subpage types]
    parent_page_types = [your parent page types]

    link = models.CharField(max_length=255, default='', blank='True')

    content_panels = Page.content_panels + [
        FieldPanel('link')
    ]    

    def serve(self, request):
        if self.link is not None:
            return HttpResponseRedirect(self.link)
        else:
            pass

在模板中:

{% for item in menu_items %}
    <li>
        <a href="{% if item.specific.link and item.specific.link != '' %}{{ item.specific.link }}{% else %}{% pageurl item %}{% endif %}">{{ item.title }
        </a>
    </li>
{% endfor %}