首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用没有命名空间的App钩子时,NoReverseMatch

当使用没有命名空间的App钩子时,NoReverseMatch
EN

Stack Overflow用户
提问于 2014-05-22 14:26:29
回答 1查看 1.1K关注 0票数 6

我使用Django CMS 3和Django 1.6以及默认的django民意调查应用,我正在做短教程。

我的问题是,当PollsApp使用这样的命名空间时,它工作得很好:

djangocms_polls/cms_app.py:

代码语言:javascript
复制
...
class PollsApp(CMSApp):
    name = _("Poll App")
    urls = ["polls.urls"]
    app_name = "polls"
...

polls/templates/polls/index.html:

代码语言:javascript
复制
...
{% for poll in latest_poll_list %}
    <li><a href="{% url 'polls:detail' poll.id %}">{{ poll.question }}</a></li>
{% endfor %}
...

但是,当我从index.html中删除“app_name:”部分时,它将无法工作(PollsApp中是否存在app_name字段也无关紧要),我得到了以下错误:

NoReverseMatch /民意测验/ 例外值: 相反的‘细节’与参数'(1L,)‘和关键字参数'{}’不找到。0已尝试的模式:[]

当一切顺利的时候,我为什么要让我的生活变得艰难呢?这是因为我想使用不使用像django-shop这样的名称空间的应用程序,而且当我为django-shop创建apphook时,也出现了同样的问题。

EN

回答 1

Stack Overflow用户

发布于 2015-03-15 17:18:10

当您通过CMS中的App钩子使用应用程序时,当在模板中创建URL时,您必须为其提供一个名称空间。

一般来说,在创建应用程序时,我相信这是一种“最佳实践”方法,它总是命名你的应用程序和模板URL。

如果使用的应用程序不使用app_name元属性,则可以在根urls.py中包含应用程序的URL时定义名称空间。查看这里的示例;https://docs.djangoproject.com/en/1.7/topics/http/urls/#reversing-namespaced-urls

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23809663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档