自定义页面模型的Wagtail网址前缀

时间:2019-01-27 08:15:09

标签: django url wagtail

这个问题可能微不足道,但是我看不到一个简单的解决方案。

我有代表Post的自定义页面模型:

  

PostPage类(页面):

我想使该模型的所有实例(所有帖子)只能使用url前缀

访问
  

/ posts /

示例:

用户创建新帖子,分配的子弹将为

  

很棒的第一篇文章

应该发生的是

  

/ awesome-first-post /

将显示404,而

  

/ posts / awesome-first-post /

将显示该帖子。

注意:我只想为特定型号的Postpage使用此前缀。其他页面应直接从它们的页面上投放。

1 个答案:

答案 0 :(得分:3)

在Wagtail中,页面URL由页面的父页面和祖先页面的子段列表构成,基于页面在树中的位置-开发人员未直接指定它们。因此,要获取URL /posts/awesome-first-post/,请创建一个带有标签posts的页面(通常,您将创建专用的PostIndexPage页面模型以用作列表页面),然后创建该页面awesome-first-post作为该子项的子项(通过单击资源管理器列表视图中“帖子”页面旁边的“ +”图标)。

如果要确保用户仅创建PostPage作为PostIndexPage的子级,请使用subpage_types / parent_page_types setting,例如:

class PostPage(Page):
    # ...
    parent_page_types = ['PostIndexPage']