这个问题可能微不足道,但是我看不到一个简单的解决方案。
我有代表Post的自定义页面模型:
PostPage类(页面):
我想使该模型的所有实例(所有帖子)只能使用url前缀
访问/ posts /
示例:
用户创建新帖子,分配的子弹将为
很棒的第一篇文章
应该发生的是
/ awesome-first-post /
将显示404,而
/ posts / awesome-first-post /
将显示该帖子。
注意:我只想为特定型号的Postpage使用此前缀。其他页面应直接从它们的页面上投放。
答案 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']