如何在Django中为我正在做的事情形成一个URL

时间:2009-08-29 18:34:55

标签: python regex django django-urls

绝望,请帮忙。将为食物工作:)

我希望能够在以下网址上显示网页,并且我希望能够通过其网址查找它们(即,如果有人访问某个网址,我希望能够检查网页有)。

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/因为它们本质上是同一页面)。这样做的好方法是什么。我试图在一个名为'slug'的字段中存储一个页面('somesubpage')的slug,并使每个slug对于它的父页面都是唯一的,这样就不会发生上述情况。这个问题是,如果我尝试通过它的slug(即'somepage')查找页面,并且恰好有一个页面在mysite.com/other/somepage/和mysite.com/page/somepage/ ,我的应用程序将如何知道哪一个(他们都有相同的slug'somepage')。

2 个答案:

答案 0 :(得分:2)

您还需要存储levelparent属性,这样您才能始终获得正确的对象。

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

答案 1 :(得分:0)

听起来你正在寻找一个CMS应用程序。有几个基于Django的CMS comparison。如果您想在项目的中心使用功能齐全的CMS,DjangoCMS 2django-page-cms可能是合适的选择。如果您更喜欢支持基本CMS使用案例的CMS,但在大多数情况下feincms可能会出现问题。

编辑:顺便说一下,比较页面上的大部分CMS都使用了丹尼尔提到的django-mptt。