我在Ubuntu 12.04上运行Django 1.4 w / Python 2.7。
我有一个网站,我添加了一个URL命名空间,并通过模板{% url common:utilities:index %}
访问它。一切都在当地很好。我有一个失败的登台服务器(好东西,我有一个登台服务器:))。
Django调试出错:
Exception Type: NoReverseMatch
Exception Value: u'utilities' is not a registered namespace inside 'common'
<a href="{% url common:utilities:index %}" class="responsive-tooltip" data-placement="right" title="Utilities">
我已经仔细检查了所有urls.py文件并验证了命名空间是否正确 - 我的团队中的每个人都在本地验证了这一点。
project urls.py:
urlpatterns = patterns('',
url(r'^common/', include('common.urls', namespace='common')),
)
common urls.py:
utilitiespatterns = patterns('',
url(r'^$', views.ConversionUploadView.as_view(), name='index'),
)
urlpatterns = patterns('common.views',
url(r'^utilities/$', include(utilitiespatterns, namespace='utilities')),
)
显然,网址路线比我放在这里的要多得多。这只是为了读者的利益。
在服务器上我清除了所有的.pyc文件。我重新启动了nginx。我已清除浏览器缓存并以隐身模式打开。
在所有失败后,我实际进入服务器shell并使用urlresolvers来验证命名空间。
In [1]: from django.core import urlresolvers as u
In [2]: u.reverse('common:utilities:index')
Out[2]: '/common/utilities/'
我当时认为这可能是unicode字符u'utilities'
的问题。任何建议都将不胜感激。
答案 0 :(得分:0)
好像你没有在服务器上重启uwsgi进程。