在witctail上为每个模型页面修改slug

时间:2017-04-27 16:07:52

标签: django wagtail

我正在尝试为Wagtail上的特定页面模型的每个页面创建一个自定义slug。我一直在研究和尝试RoutablePageMixin示例,但这似乎修改了url结构,而不是slug本身。

以下是我要做的事情:

当前页面标题:关于Django

当前页面slug:about-django

我想要的页面标题:关于Django

页面slug我想:很棒的东西 - 关于django

我看了创建路线方法,但似乎没有修改slug。有没有办法在你的slug上添加一些东西?我知道我可以手动执行此操作,但更愿意自动执行此操作。

1 个答案:

答案 0 :(得分:1)

在保存时自动更新页面的一种可能性是覆盖full_clean方法:

class MyPage(Page):

    # ...

    def full_clean(self, *args, **kwargs):
        # first call the built-in cleanups (including default slug generation)
        super(MyPage, self).full_clean(*args, **kwargs)

        # now make your additional modifications
        if not self.slug.startswith('awesome'):
            self.slug = "awesome-%s" % self.slug