隐藏在Wagtail中创建的新页面

时间:2017-05-23 07:45:18

标签: django wagtail

我已尝试搜索官方文档和相关留言板,但我无法找到任何相关内容。

我网站上的某些网页模板只能使用一次 - 例如主页。

Wagtail中有没有办法隐藏或禁止用户在创建新页面时选择该模板/页面模型?

2 个答案:

答案 0 :(得分:3)

您可以通过修改YourPageModel.parent_page_types来限制可以创建网页类型的位置,请参阅http://docs.wagtail.io/en/v1.10.1/reference/pages/model_reference.html#wagtail.wagtailcore.models.Page.parent_page_types。同样,还有subpage_types设置,因此您可以强制NewsIndexPage只能创建为HomePage的直接子项,并且只能包含NewsItemPage个实例。将此与用户权限相结合应足以使主页或页面类型位于树中足够高的位置。

如果您绝对必须强制执行只存在某种特定页面类型,则可以覆盖classmethod clean_parent_page_models,如果此类的实例已存在则返回[]。然而,这种方法是一种黑客攻击,可能会被W​​agtail的未来版本打破。

答案 1 :(得分:0)

任何人来这里寻找相似的东西,Wagtail现在添加了2个漂亮的属性,我们可以使用这些属性来限制创建页面的次数不超过特定次数。

http://docs.wagtail.io/en/v2.5.1/reference/pages/model_reference.html#wagtail.core.models.Page.max_count

最大数量

  

控制可通过Wagtail管理界面创建的此类页面的最大数量。当需要“最多允许这些页面中的3个存在”或单例页面时,这很有用。

max_count_per_parent

  

控制可在任何一个父页面下创建的此类页面的最大数量。