【问题标题】:How can I ensure Django CMS initializes app urls?如何确保 Django CMS 初始化应用程序 url?
【发布时间】:2019-06-29 18:19:21
【问题描述】:

我正在尝试启动一个 Django CMS 应用程序。所有应用程序挂钩均已正确设置和注册。以NewsHook为例:

class NewsHook(CMSApp):
    """ A class to hook the News into the django cms
    """
    name = ("News")
    urls = ["apps.news.urls"]


apphook_pool.register(NewsHook)

这个钩子的urls.py包括以下内容:

urlpatterns = [
    # /feed/
    url(r'^feed/$', ArticlesFeed(), name='news_feed'),
]

项目的urls.pysettings文件夹下)包括以下相关行:

admin.autodiscover()

urlpatterns = patterns(
    '',
    ...
    # / -> Django CMS
    url(r'^', include('cms.urls')),
)

这一切看起来都很正常,对吧?但是当我访问主页时,我得到NoReverseMatch 错误:

不知道我做错了什么......这是否有我没有看到的一面?顺便说一句,这个应用程序在生产中运行良好,所以据我所知,它没有任何错误。

我的规格

  • Django 版本:1.8.13
  • Django CMS 版本:3.3.0
  • Python 版本:2.7。

【问题讨论】:

  • 你能发布完整的错误堆栈和文件cms.urls吗? NoReverseMatch 仅表示在您的完整 url 列表中找不到 url。对于主页,这将是描述文件 cms.urls 的 URL。

标签: python django django-cms


【解决方案1】:

我发现这些 Django CMS 应用需要附加到页面才能将 url 添加到项目中。我从生产中加载了 pages 表,并且 url 开始起作用。

使 url 依赖于页面的存在对我来说真的违反直觉,来自 Rails。

【讨论】:

    猜你喜欢
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 2011-04-02
    • 2012-03-19
    • 1970-01-01
    相关资源
    最近更新 更多