Skip to content

Wagtail 添加主菜单 #427

Open
Open
@twn39

Description

@twn39

通过 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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions