【问题标题】:Urls not working while integrating custom application with django-cms将自定义应用程序与 django-cms 集成时 URL 不起作用
【发布时间】:2011-07-11 19:29:16
【问题描述】:

我正在尝试将 django 应用程序与 django-cms 集成。我正在使用基本 Django 教程中提到的基本“投票”应用程序,并遵循here 的指导方针。

现在我可以集成应用程序并可以查看“投票”页面。但是当我按“提交”时,django-cms 给了我错误

“CMS:找不到“polls/1/vote”的页面

更新:如果我在主 urls.py 中添加以下行,一切正常。

(r'^polls/', include('polls.urls')),

但在 django 和 django-cms 中通常不鼓励这样做。有出路吗?

【问题讨论】:

  • 为什么不鼓励在 django 和/或 django-cms 中添加“路由”?
  • @poelinca - 因为这意味着应用程序不容易移植,因为它需要手动更改 urls.py。理想情况下,应用程序应自动锁定。
  • 如果您使用 django.contrib.admin 应用程序,您仍然需要同时编辑 settings.py 和 urls.py 对吗?那么为什么 polls.py 应该采取不同的行动呢?将 urls.py 也视为配置文件(如 settings.py )。 ps:这是从我用 django 玩了几个小时的 php 角度来看的。
  • 将 wrt 移植到 django-cms 的要点是,如果应用程序在 /polls/ 上运行,您应该能够将其更改为 /new-polls/,而无需手动编辑 urls 文件。使用 django-cms,您可以通过创建 apphook 并将这些 apphook 附加到页面来做到这一点。
  • admin app 是一种特殊情况,每次 django 安装只需要一次。您可能需要添加数百个应用程序,这将导致 urls.py 非常混乱。因此,理想情况下,您应该只在 INSTALLED_APPS 设置中添加您的应用,这样就可以了。

标签: django django-models django-cms


【解决方案1】:

嗯,我想通了。好吧,应用程序模板中的硬编码 URL 不起作用。应该在模板中使用 {% url %} 标签。

【讨论】:

    【解决方案2】:

    使用 apphooks 将是解决方案,但是如果您最后将 cms url 路由放在 urlpatterns 的末尾,它会起作用。试试看

    【讨论】:

      【解决方案3】:

      您需要为您的投票应用程序创建一个 apphook 并在其中包含网址。看看:http://docs.django-cms.org/en/2.1.3/extending_cms/extending_examples.html#my-first-app-apphook

      编辑

      请记住在附加 apphook 后重新启动服务器。

      【讨论】:

      • 这正是我目前所关注的。但是,这只会将我带到投票页面,因此至少有一些网址可以按照文章中的说明工作。但是当我在投票页面上按“提交”时,表单的动作指向/polls/id/vote。除非我在 urls.py.:( 中添加手动 URL 路径,否则此特定 URL 不可用
      • 如果您的意思是在 polls.urls(即投票应用程序的 urls 文件)中为 /polls/id/vote 添加一个条目,那么这很好,即必须是文档中的错误。
      • 这里有 django-cms 用户邮件列表:groups.google.com/group/django-cms
      • 我已经回答了我自己的问题。
      猜你喜欢
      • 2011-07-07
      • 2010-12-17
      • 1970-01-01
      • 2018-03-29
      • 2012-10-09
      • 2012-04-27
      • 2012-04-24
      • 1970-01-01
      • 2013-02-24
      相关资源
      最近更新 更多