如何使用 django-cms 为 apphook 模型实例创建子页面?

How to create sub-pages for apphook model instances with django-cms?

问题上下文

我负责为一个项目设计cms架构。

要求说明一组编辑者应该能够创建 "Projects"。

每个项目..

想象的例子

使用 django-cms 文档作为基础,我将生成的结构想象成这样:

然而,这似乎不存在,或者至少我没有看到任何关于如何获得这种结构的参考资料。

在一个视频中我听说一旦有一个 apphook.. 子页面就不再有意义了。 我在其他地方读到,理论上如果钩子足够宽容......它可以结合起来。然而,即使这有效.. 子页面也不会被自定义 apphook 模型的实际实例所喜欢。

PS: 我目前使用的是:django-cms==3.3.0

问题

如何使用 django-cms 构建这样的结构?

我想这可以通过为每个项目设置一个 apphooked 页面来完成。在那种情况下......必须为每个新创建的项目重新启动服务器。那样好像不太优雅

备选方案

我在之前的项目中一直在使用 wagtail。因此,我确实知道如何使用 ProjectPageProjectSubpage 模型轻松地使用 wagtail 实现这样的结构。 我拒绝放弃能够复制此类功能的 django-cms。我对替代范例和方法持开放态度。也许还有一些我没有想到。如果是这样,请告诉我。 :)

请求

非常欢迎指导和想法! 如果您知道如何获得它或有什么想法可以为我指明正确的方向,请告诉我。

谢谢!

这里有几点要告诉你。

  1. django CMS 可以愉快地提供页面 "beneath" 和 apphook,但 apphook 在 URL 解析期间获得优先权。所以,只要确保你的 apphook 的 URL 模式不会吞噬一切,sub-pages 应该没问题。

  2. 另一种方法是制作一个 one-to-many table 包含 "page-like" 属性(标题、meta-attributes 等)并在至少一个 PlaceholderField。然后可以使用它来呈现看似正常的 CMS 页面,apphook-itself 可以通过其视图控制这些页面。因此,您可以拥有 apphook-model-specific 上下文和 url-patterns,并且仍然拥有 CMS 的几乎所有 front-end 编辑功能。

希望对您有所帮助!