隐藏在鹡鸰中创建的新页面



我尝试在官方文档和相关留言板上搜索此内容,但是我找不到任何相关内容。

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

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

您可以通过编辑来限制可以创建页面类型的位置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实例。将其与用户权限相结合应该足以满足树中足够高的主页或页面类型。

如果绝对必须强制只存在某个页面类型中的一个,则可以重写类方法clean_parent_page_models,以返回[]如果此类的实例已存在。然而,这种方法是一种黑客攻击,可能会被未来版本的Wagtail打破。

更新,2021 年 1 月:

上面的黑客并没有完全被破坏,但它肯定不理想,从 2.4 版开始,Wagtail 就有了max_countPage 属性(在 2.5 中max_count_per_parent)。

文档:https://docs.wagtail.io/en/stable/reference/pages/model_reference.html#wagtail.core.models.Page.max_count

@JaredOzzy的答案是正确的,并且对这些方法有更多详细信息。

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

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

max_count

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

max_count_per_parent

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

最新更新