拼命,请帮忙。会为食物而工作 :)

我希望能够在以下URL上具有页面,并且希望能够通过其URL查找它们(即,如果有人转到某个URL,那么我希望能够在其中检查页面)。

mysite.com/somepage/somesubpage/somesubsubpage/
mysite.com/somepage/somesubpage/othersubpage/
mysite.com/somepage/somesubpage/somesubpage/
mysite.com/somepage/somepage/


注意,我希望能够重用每个页面的段(例如,somepage / somepage)。当然,每个块在其级别上都是唯一的(即,不能具有mysite.com/somepage/other/和mysite.com/somepage/other/的两个页面,因为它们本质上是同一页面)。什么是执行此操作的好方法。我试图将页面(“ somesubpage”)的块存储在名为“ slug”的字段中,并使每个块对于其父页面都是唯一的,这样就不会发生上述情况。这个问题是,如果我尝试通过它的子菜单项(即“ somepage”)查找页面,并且碰巧在mysite.com/other/somepage/和mysite.com/page/somepage/ ,我的应用程序如何知道要获得哪个(它们都具有相同的“'somepage'”)。

最佳答案

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

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

关于python - 如何在Django中为我正在做的事情形成URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1352073/

10-11 13:59