django:CMS的递归/树状URL映射?

django:CMS的递归/树状URL映射?,django,django-models,django-templates,django-urls,Django,Django Models,Django Templates,Django Urls,我正在重建一个网站,它包含了用户提供的大量内容(帖子、图片、事件等)。此内容属于部分(音乐、商店等);i、 e.正常CMS 我希望每个内容都从基本内容对象继承(多表继承)。这意味着所有内容都可以轻松查询,并且整洁且可扩展(无需重新编写所有基本内容,如“created_by”、“title”、“slug”等) 非常直截了当 当涉及到组织时,各种内容OBJ/模型应该可以选择分配给一个部分(即,podcast对象位于“音乐”之下)。或者,节应该能够将自己分配给父节(“单词>博客>常规>”)。在CMSs

我正在重建一个网站,它包含了用户提供的大量内容(帖子、图片、事件等)。此内容属于部分(音乐、商店等);i、 e.正常CMS

我希望每个内容都从基本内容对象继承(多表继承)。这意味着所有内容都可以轻松查询,并且整洁且可扩展(无需重新编写所有基本内容,如“created_by”、“title”、“slug”等)

非常直截了当

当涉及到组织时,各种内容OBJ/模型应该可以选择分配给一个部分(即,podcast对象位于“音乐”之下)。或者,节应该能够将自己分配给父节(“单词>博客>常规>”)。在CMSs中,这也是一个相当糟糕的标准想法

理想情况下,我希望像这样的组织有一个完全通用的解决方案(就像我有一个通用的内容解决方案一样)。我考虑的是树状结构,其中每个节点要么是一个节,要么是一个contentobject模型

root
    > section1
        > subsection 1 > contentobj1
        > subsection 2 > contentobj2
    > section2
        > contentobj3

    > contentobj4
这种通用设置的目标是拥有一个非常枯燥的esqe URL方案和模板系统。您只需要两个或三个模板。您可以根据用户请求的url填充页面,而不需要硬编码url,如/blog//

我很难理解如何在数据库驱动的应用程序中编写这种树状结构。有一个模型部分可以很容易地为其分配内容模型。但当涉及到子部分时,就有点棘手了。此外,如何抽象URL方案,以便一个节可以有尽可能多的子节指向一个内容对象,而无需实际硬编码URL


基本上,我想写一个结构/框架,其中内容和组织是分开的,url/模板方案和实际内容完全分开。以前我会有一个博客应用程序,一个活动应用程序,但我肯定会有一个内容应用程序来管理网站的所有内容,也许还有一个组织应用程序来管理部分等。

要在模型中实现树,请签出。我已经使用并推荐django mptt


顺便说一句,你为什么不看看呢。这是一个非常灵活的应用程序,在集成您自己的应用程序时有很多扩展点。

我喜欢这个问题。这是我离开普隆岛(plone land)后一直萦绕在脑后的一件事(并不是说我不再时不时地回到那里)

我肯定会从一些树形应用程序(如zsquare建议的)开始,构建一个基本模型,利用通用外键链接您所谈论的各种内容类型——事件、文章、类别等


从那里,我将深入到管理员那里,看看它如何处理动态url生成,并从那里开始,利用树包提供的功能为我的内容树构建url。

我从未看过mptt,但是当我读到这篇文章时,我立刻想到了treebeard…我还没有机会使用treebeard,因为我与trees合作的两次mptt都已经在项目中实施了。他们看起来都将为树状结构(即sectionsYea)做生意,以硬编码的方式组合了一个CMS,我正试图找出这个想法。经过深思熟虑,我认为这应该是很容易与层次的东西。我要看一下管理方面的东西。这是递归URL的东西让我着迷
root
    > section1
        > subsection 1 > contentobj1
        > subsection 2 > contentobj2
    > section2
        > contentobj3

    > contentobj4