我正在尝试为Wagtail上的特定页面模型的每个页面创建一个自定义slug。我一直在研究和尝试RoutablePageMixin示例,但这似乎修改了url结构,而不是slug本身。
以下是我要做的事情:
当前页面标题:关于Django
当前页面slug:about-django
我想要的页面标题:关于Django
页面slug我想:很棒的东西 - 关于django
我看了创建路线方法,但似乎没有修改slug。有没有办法在你的slug上添加一些东西?我知道我可以手动执行此操作,但更愿意自动执行此操作。
答案 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