【问题标题】:Wagtail url prefix for a custom Page model自定义 Page 模型的 Wagtail url 前缀
【发布时间】:2019-01-27 08:15:08
【问题描述】:

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

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

类 PostPage(Page):

我想让这个模型的所有实例(所有帖子)只能使用 url 前缀访问

/posts/

例子:

用户创建新帖子,分配的 slug 将是

第一次发帖太棒了

应该发生的是,

/awesome-first-post/

将导致 404,而

/posts/awesome-first-post/

将显示帖子。

注意:我只希望这个前缀用于特定型号的 Postpage。其他页面应直接从它们的 slug 提供。

【问题讨论】:

    标签: django url wagtail


    【解决方案1】:

    在 Wagtail 中,页面 URL 由页面的父页面和祖先页面的 slug 列表形成,基于页面在树中的位置 - 开发人员不会直接指定它们。因此,要获取 URL /posts/awesome-first-post/,请使用 slug posts 创建一个页面(通常您会创建一个专用的 PostIndexPage 页面模型作为列表页面),并将页面 awesome-first-post 创建为子页面那个(通过点击资源管理器列表视图中帖子页面旁边的“+”图标)。

    如果您想确保用户只将PostPages 创建为PostIndexPage 的子级,请使用subpage_types / parent_page_types setting,例如:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-31
      • 2018-04-02
      • 1970-01-01
      • 2019-03-29
      • 2013-04-21
      • 1970-01-01
      相关资源
      最近更新 更多