Django Wagtail CMS slugurl 和 pageurl 不工作 - link returns 'None'
Django Wagtail CMS slugurl and pageurl not working - link returns 'None'
我正在构建我的第三个 Wagtail CMS 站点 (v.1.8),但一直无法找出 slugurl
和 pageurl
标签来创建内部 links 并且只是对所有 link 进行了硬编码,尽管硬编码违背了我的工作流程。有人可以帮帮我吗?是的,我确实在我的页面上添加了 {% load wagtailcore_tags %}
。
出于演示目的,我将使用一个非常简单的模型,该模型将为我的客户提供一个仅包含标题和 body 作为其页面模板之一的模板。该页面恰当地称为 StandardPage(Page)
,模板名为 standard_page.html
。我创建了一个 about
页面,并想在我的 header 和页脚中为该页面提供一个 link。我知道我可以硬编码;但这不是我想做的。
我试过 {% slugurl page.about %}
但 link returns None
- 我什至试过 {% slugurl standardpage.about %}
以为我错过了一些东西但当然 returns None
还有。
我总是在我的所有 Django 项目中使用命名路由,无法弄清楚这一点让我发疯。
这是我的模型供参考。谢谢。
class StandardPage(Page):
body = RichTextField(blank=True)
search_fields = Page.search_fields + [
index.SearchField('title'),
index.SearchField('body'),
]
class Meta:
verbose_name = 'Standard Page - No Image Placement'
content_panels = Page.content_panels + [
FieldPanel('body', classname="full"),
]
{% slugurl page.about %}
将在您的当前页面上查找名为 about
的字段 - 这会失败,因为没有具有该名称的字段。
如果您想 link 到带有 slug 'about' 的页面,请使用 {% slugurl 'about' %}
。 (但是,您应该意识到这与硬编码 URL 并没有太大区别...如果您担心硬编码因为编辑器可能会不小心重命名页面并破坏 link,那么 slugurl
不会保护您免受这种情况的影响。最终您必须相信您的编辑不会做任何愚蠢的事情!)
我正在构建我的第三个 Wagtail CMS 站点 (v.1.8),但一直无法找出 slugurl
和 pageurl
标签来创建内部 links 并且只是对所有 link 进行了硬编码,尽管硬编码违背了我的工作流程。有人可以帮帮我吗?是的,我确实在我的页面上添加了 {% load wagtailcore_tags %}
。
出于演示目的,我将使用一个非常简单的模型,该模型将为我的客户提供一个仅包含标题和 body 作为其页面模板之一的模板。该页面恰当地称为 StandardPage(Page)
,模板名为 standard_page.html
。我创建了一个 about
页面,并想在我的 header 和页脚中为该页面提供一个 link。我知道我可以硬编码;但这不是我想做的。
我试过 {% slugurl page.about %}
但 link returns None
- 我什至试过 {% slugurl standardpage.about %}
以为我错过了一些东西但当然 returns None
还有。
我总是在我的所有 Django 项目中使用命名路由,无法弄清楚这一点让我发疯。
这是我的模型供参考。谢谢。
class StandardPage(Page):
body = RichTextField(blank=True)
search_fields = Page.search_fields + [
index.SearchField('title'),
index.SearchField('body'),
]
class Meta:
verbose_name = 'Standard Page - No Image Placement'
content_panels = Page.content_panels + [
FieldPanel('body', classname="full"),
]
{% slugurl page.about %}
将在您的当前页面上查找名为 about
的字段 - 这会失败,因为没有具有该名称的字段。
如果您想 link 到带有 slug 'about' 的页面,请使用 {% slugurl 'about' %}
。 (但是,您应该意识到这与硬编码 URL 并没有太大区别...如果您担心硬编码因为编辑器可能会不小心重命名页面并破坏 link,那么 slugurl
不会保护您免受这种情况的影响。最终您必须相信您的编辑不会做任何愚蠢的事情!)