Open
Description
通过 templatetags 获取站点主页面:
from django import template
from wagtail.models import Site
register = template.Library()
@register.simple_tag(takes_context=True)
def get_site_root(context):
request = context.get('request')
return Site.find_for_request(request).root_page
在模板中显示:
{% load navigation_tags wagtailcore_tags %}
<div class="top-menu">
{% get_site_root as site_root %}
<nav>
<p>
<a href="{% pageurl site_root %}">Home</a> |
{% for menuitem in site_root.get_children.live.in_menu %}
<a href="{% pageurl menuitem %}">{{ menuitem.title }}</a>
{% endfor %}
</p>
</nav>
</div>
注:因为主页面从 context 的 request 拿到主页面,所以模板标签需要放在主模板中,例如:
home.html
,不然会获取不到 context