【问题标题】:Django Wagtail CMS slugurl and pageurl not working - link returns 'None'Django Wagtail CMS slugurl 和 pageurl 不起作用 - 链接返回“无”
【发布时间】:2017-05-21 12:08:24
【问题描述】:

我正在构建我的第三个 Wagtail CMS 站点 (v.1.8),但从未能够找出 slugurlpageurl 标签来创建内部链接,并且只是对所有链接进行硬编码,即使硬编码违背我的工作流程中的谷物。有人可以帮帮我吗。是的,我确实在我的页面上添加了{% load wagtailcore_tags %}

出于演示目的,我将使用一个非常简单的模型,该模型将为我的客户提供一个只有标题和正文的模板作为他们的页面模板之一。该页面被恰当地称为StandardPage(Page) 和一个名为standard_page.html 的模板。我创建了一个about 页面,并希望在我的页眉和页脚中提供指向该页面的链接。我知道我可以对其进行硬编码;但这不是我想做的。

我尝试过{% slugurl page.about %},但链接返回None - 我什至尝试过{% slugurl standardpage.about %},以为我遗漏了什么,但它当然也返回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"),
    ]

【问题讨论】:

    标签: django django-models django-templates wagtail


    【解决方案1】:

    {% slugurl page.about %} 会在您的当前页面上查找名为 about 的字段 - 这会失败,因为没有具有该名称的字段。

    如果您想链接到带有 slug 'about' 的页面,请使用 {% slugurl 'about' %}。 (但是,您应该意识到这与硬编码 URL 并没有太大区别……如果您担心硬编码,因为编辑器可能会不小心重命名页面并破坏链接,那么 slugurl 赢了' ' t保护你免受那种。最终你必须相信你的编辑不会做任何愚蠢的事情!)

    【讨论】:

    • 那行得通。我知道slugurl 与硬编码没有什么不同,但我习惯使用 url 标签,使用它至少会满足我的强迫症:) 谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 2010-09-27
    • 1970-01-01
    相关资源
    最近更新 更多