1

心急如焚,求救。会为食物而工作 :)

我希望能够在以下 URL 上拥有页面,并且我希望能够通过它们的 URL 来查找它们(即,如果有人访问某个 URL,我希望能够检查那里的页面)。

mysite.com/somepage/somesubpage/somesubsubpage/
mysite.com/somepage/somesubpage/anothersubpage/
mysite.com/somepage/somesubpage/somesubpage/
mysite.com/somepage/somepage/

请注意,我希望能够重用每个页面的 slug(即 somepage/somepage)。当然,每个 slug 的级别都是独一无二的(即,不能有两个页面,mysite.com/somepage/other/ 和 mysite.com/somepage/other/ 因为它们本质上是同一个页面)。有什么好方法可以做到这一点。我试图将页面('somesubpage')的slug存储在一个名为'slug'的字段中,并使每个slug对于它的父页面都是唯一的,这样就不会发生上述情况。问题在于,如果我尝试通过它的 slug 查找页面(即“somepage”),并且在 mysite.com/other/somepage/ 和 mysite.com/page/somepage/ 上恰好有一个页面,我的应用程序如何知道要获取哪一个(它们都有相同的 slug 'somepage')。

4

2 回答 2

2

您还需要存储levelparent属性,以便您始终可以获取正确的对象。

存储分层数据的需求非常频繁,我总是推荐django-mptt。它是用于在数据库中存储分层数据的有效算法的 Django 实现。我已经在几个项目中使用过它。基本上,除了存储级别和父对象外,它还为每个对象存储一个leftright,以便它可以唯一地描述树及其所有子元素。项目主页上有一些解释性链接。

于 2009-08-29T18:40:10.150 回答
0

听起来您正在寻找 CMS 应用程序。有几个基于 Django 的 CMS 的比较。如果您想在项目中心使用功能齐全的 CMS,DjangoCMS 2django-page-cms可能是合适的选择。如果您更喜欢支持基本 CMS 用例的 CMS,但在大多数情况下不按您的意愿行事,那么feincms可能值得一看。

编辑:顺便说一句,比较页面上的大多数 CMS 都使用 Daniel 提到的 django-mptt。

于 2009-08-29T19:18:09.120 回答