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

2024-06-02 05:48:57 发布

您现在位置:Python中文网/ 问答频道 /正文

绝望,请救命。将为食物工作:)

我希望能够有网页在以下网址,我想能够查找他们的网址(即,如果有人到某个网址,我想能够在那里检查网页)。在

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”)。在


Tags: 方法com网页页面级别食物other网址
2条回答

您还需要存储levelparent属性,以便始终能够获得正确的对象。在

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

听起来你在找CMS应用程序。有一个comparison几个基于Django的CMS。如果您希望在项目的中心使用一个功能齐全的CMS,DjangoCMS 2或{a3}可能是最合适的。如果您喜欢支持基本CMS用例的CMS,但大多数时候都不符合您的方式,feincms可能是值得一看的东西。在

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

相关问题 更多 >