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

时间:2016-06-15 22:10:26

标签: django django-cms divio

问题背景

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

要求声明一组编辑应该能够创建"项目"。

每个项目..

  • 保存关于自身的元数据
  • 可从其他地方查询(例如前5个项目)。
  • 有一个显示相关信息的页面。 (不一定是cms页面实例)
  • 可以连接到国家/地区(意味着所选县中存在该项目的实施)。
  • 可以有子页面,而子页面又可以嵌套。

想象的例子

使用django-cms文档作为基础,我将对结果结构进行成像,如下所示:

  • 项目(apphook)
    • "项目1" (project 1模型实例的页面)
    • "项目2" (project 2模型实例的页面)
      • "项目2子页面1" (project 2模型实例的子页面)
      • "项目2子页面2" (project 2模型实例的子页面)
        • "项目2子页面" ("项目2子页面2&#34的子页面;)

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

在视频中,我听说只要有apphook ..子页面就没有意义了。 在其他地方我读到理论上如果钩子足够宽松......它可以组合在一起。但是,即使这样可行..子页面也不会被自定义apphook模型的实际实例所喜欢。

PS:我目前正在使用:django-cms == 3.3.0

问题

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

我认为可以通过为每个项目设置一个apphooked页面来完成。在这种情况下,必须为每个新创建的项目重新启动服务器。这似乎不是很优雅。

替代

我一直在以前的项目上工作。因此,我确实知道如何使用ProjectPageProjectSubpage模型轻松实现wagtail这样的结构。 我拒绝放弃能够复制这种功能的django-cms。我愿意接受替代范式和方法。也许有一些我没有想过。如果是这样,请告诉我。 :)

请求

非常欢迎指导和想法! 请告诉我你是否知道如何得到这个或有一些想法可以指出我正确的方向。

谢谢!

1 个答案:

答案 0 :(得分:1)

这里有几点意见。

  1. django CMS可以愉快地提供“下方”和apphook的页面,但apphook在URL解析期间获得优先权。因此,只需确保您的apphook的网址格式不会占用所有内容,子网页就可以了。

  2. 另一种方法是创建一对多的表,其中包含“类似页面”的属性(标题,元属性等)和至少一个PlaceholderField。然后,可以使用它来显示apphook本身可以通过其视图控制的正常CMS页面。因此,您可以拥有特定于Apphook模型的上下文和网址模式,并且几乎拥有CMS的所有前端编辑功能。

  3. 我希望这有帮助!