Menu 如何向wagtail添加多级菜单支持(支持非wagtail页面)
如何添加对自定义菜单的支持,这些菜单也适用于非Wagtail页面Menu 如何向wagtail添加多级菜单支持(支持非wagtail页面),menu,submenu,wagtail,Menu,Submenu,Wagtail,如何添加对自定义菜单的支持,这些菜单也适用于非Wagtail页面 例如,通过直接提供注册页面的相对url,如“/account/registration”) 例如,直接向外部页面(如“www.stackoverflow.com”)提供绝对url 我发现这个项目非常有趣:https://github.com/rkhleics/wagtailmenus 不幸的是,is不支持主菜单中的子菜单。Wagtail的一点是,我称之为数据树的内容仅由页面组成(称为a)。此树用作导航的基础,但是,当然,有时您可能
https://github.com/rkhleics/wagtailmenus
不幸的是,is不支持主菜单中的子菜单。Wagtail的一点是,我称之为数据树的内容仅由页面组成(称为a)。此树用作导航的基础,但是,当然,有时您可能希望此树中的导航项不是页面。通过子类化
页面
,我完成了您想要做的事情:
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 %}
{%用于菜单项中的项\u items%}
{%endfor%}
感谢您的输入。但这不是我真正想要的。有时我想链接到外部资源。你会怎么做?(我将更新我的帖子并添加此要求)当然。我明白你的要求,我也试过了。我之所以发布这个解决方案,是因为如果您的项目主要是Wagtail,并且您正在从Wagtail页面树呈现主菜单,那么这为您提供了一种在Wagtail页面树中包含临时链接的方法,而无需创建任何其他数据结构。您可以手动在HTML中包含链接(不建议这样做),也可以创建自己的一组基于模型的链接,但如果您希望能够从一个数据树(Wagtail的页面树)简单地呈现菜单,则此解决方案将起作用。另请参阅我为显示模板呈现所做的编辑logic@PhilippS. 这个问题解决得好吗?是的,只是随便玩玩。但是你的代码帮助很大。我只是添加了这一行,以避免将“假页面”添加到站点地图:def get_sitemap_url(self):return[]