【发布时间】:2011-07-04 10:02:41
【问题描述】:
我正在重建一个网站,其中包含用户贡献的大量内容(帖子、图片、活动等)。此内容属于部分(音乐、商店等);即普通的 CMS。
我想让每条内容都继承自一个基础内容对象(多表继承)。这意味着所有内容都可以轻松查询,整洁且可扩展(无需重新编写所有基本内容,如“created_by”、“title”、“slug”等)
ContentObj
> Blog Post obj
> Event Post obj
> Podcast Post obj
> ... etc.
相当直接。
在组织方面,各种内容对象/模型应该可以选择分配到一个部分(即播客对象属于“音乐”)。或者,一个部分应该能够将自己分配给一个父部分('Words > Blog > General >')。在 CMS 中,这又是一个非常标准的想法。
理想情况下,我希望为这样的组织提供一个完全通用的解决方案(就像我对内容有一个通用的解决方案一样)。我正在考虑一个树状结构,其中每个节点要么是一个部分,要么是一个内容对象模型。
root
> section1
> subsection 1 > contentobj1
> subsection 2 > contentobj2
> section2
> contentobj3
> contentobj4
这种通用设置的目标是拥有一个非常 DRY-esqe 的 URL 方案和模板系统。您只需要两个或三个模板。您根据用户请求的 url 填充页面,并且永远不需要硬编码诸如 /blog/// 之类的 url。
我无法理解如何在数据库驱动的应用程序中编写这种树状结构。拥有一个可以分配内容模型的模型部分会很容易。但是当涉及到小节时,它有点棘手。此外,如何抽象 URL 方案,以便一个部分可以有尽可能多的指向内容对象的子部分,而无需实际对 url 进行硬编码?
基本上我想编写一个结构/骨架,其中内容和组织是分开的,而 url/模板方案与实际内容完全分开。以前我应该有一个博客应用程序、一个活动应用程序,但我肯定应该有一个内容应用程序来管理网站的所有内容,也许还有一个组织应用程序来管理各个部分等。
【问题讨论】:
标签: django django-models django-templates django-urls