Django Wagtail CMS slugurl 和 pageurl 不工作 - link returns 'None'

Django Wagtail CMS slugurl and pageurl not working - link returns 'None'

我正在构建我的第三个 Wagtail CMS 站点 (v.1.8),但一直无法找出 slugurlpageurl 标签来创建内部 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 不会保护您免受这种情况的影响。最终您必须相信您的编辑不会做任何愚蠢的事情!)