【问题标题】:How do I form a URL in Django for what I'm doing我如何在 Django 中为我正在做的事情形成一个 URL
【发布时间】:2010-11-24 00:53:00
【问题描述】:

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

我希望能够在以下 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')。

【问题讨论】:

  • 我不明白您为什么找不到子页面。您能否提供导致问题的模型?这看起来并不复杂,但是,您声称查找页面存在问题。请提供导致问题的型号。

标签: python regex django django-urls


【解决方案1】:

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

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

【讨论】:

  • 我的 URL 中需要类似的 CMS 功能,但我没有构建 CMS。感谢您的列表
【解决方案2】:

你还需要存储levelparent属性,这样你总能得到正确的对象。

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

【讨论】:

  • 只是查看我的旧问题...非常感谢您当天的所有回答。你对我的帮助超出了你的想象。
猜你喜欢
  • 1970-01-01
  • 2012-07-13
  • 1970-01-01
  • 1970-01-01
  • 2014-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-09
相关资源
最近更新 更多