如何在Wagtail中获取模板中根页面的url?

问题描述 投票:0回答:6

pageurl 可以使用 Page 对象来实现,但我不确定如何获取根页面对象。

wagtail
6个回答
10
投票

根页面的 URL 是

/
。只需写
<a href="/">
- 无需使用模板标签。

(您可能认为这是作弊,但这实际上是根页面的定义。)

如果 urls.py 中的

include(wagtail_urls)
行植根于
/
以外的路径,并且不想在模板中硬编码该路径,则可以使用:
{% url 'wagtail_serve' '' %}
(注意空字符串之后
'wagtail_serve'
)。


6
投票

要在 wagtail 模板中显示站点根页面,请将以下内容添加到您的页面模板中:

{% load wagtailcore_tags %}
<a href="{{ request.site.root_url }}">Site Url</a>

此代码已弃用。从 wagtail 2.9 开始,首选选项是

{% wagtail_site %}
。查看 wagtail 2.9 发行说明


5
投票

如果您使用 wagtail_modeltranslation 并想要获取翻译后的根页面 url(例如:example.com/fr/ 法语),您可以使用

{% pageurl request.site.root_page %}

对于鹡鸰版本 > 2.9:

{% load wagtailcore_tags %}
{% wagtail_site as current_site %}

然后使用

{% pageurl current_site.root_page %}
{{ current_site.root_url }}


3
投票

对于 wagtail 版本 > 2.12.2,您需要导入

{% wagtail_site as current_site %}

然后您可以在模板中使用:

{{ current_site.root_url }}


2
投票

如果您使用 wagtail-localize 这将为您提供当前语言环境的主页

{% pageurl page.get_site.root_page.localized %}


0
投票

Wagtail 的最新版本 5.1.1 希望您在模板开头加载

wagtailcore_tags

{% load wagtailcore_tags %}

然后您可以像这样引用网站的根目录:

<a class="footer-links" href="{% url 'wagtail_serve' '' %}">Blog</a>
© www.soinside.com 2019 - 2024. All rights reserved.