我使用Django CMS 3和Django 1.6以及默认的django polls app,我正在做this简短教程。
我的问题是PollsApp在使用名称空间时效果很好:
djangocms_polls / cms_app.py:
...
class PollsApp(CMSApp):
name = _("Poll App")
urls = ["polls.urls"]
app_name = "polls"
...
轮询/模板/轮询/ index.html中:
...
{% for poll in latest_poll_list %}
<li><a href="{% url 'polls:detail' poll.id %}">{{ poll.question }}</a></li>
{% endfor %}
...
但是当我删除&#34;民意调查时:&#34;部分来自index.html,它不会起作用(如果PollsApp中有或者不是app_name字段也没关系)我得到了这个错误:
/ polls /
的NoReverseMatch例外值:
反转&#39;详细信息&#39;参数&#39;(1L,)&#39;和关键字参数&#39; {}&#39;未找到。尝试了0种模式:[]
当一切正常时,为什么我要努力工作 - 你问?这是因为我想使用不使用django-shop等名称空间的应用程序,当我为django-shop创建apphook时 - 出现了同样的问题。
答案 0 :(得分:0)
当您通过CMS中的Apphook使用应用时,您必须在模板中创建网址时提供命名空间。
一般来说,在创建应用时,我相信它来自最佳实践&#39;始终命名您的应用和模板URL的方法。
如果您使用的是不使用app_name
Meta属性的应用,则可以在根目录中包含应用的网址时定义命名空间{{ 1}}。看看这里的例子; https://docs.djangoproject.com/en/1.7/topics/http/urls/#reversing-namespaced-urls