1
- 的Django 1.6.1
- 的Python 2.7.5
- 升級到1.6.1 Django的ISP webfaction
後,我得到的。在根下面的錯誤/
Django的NoReverseMatch U '「原' 是不是已註冊的命名空間
NoReverseMatch at /proto/
u'"proto' is not a registered namespace
我urls.py是(截斷):
urlpatterns = patterns(
'views',
...
url(r'^admin/', include(admin.site.urls)),
url(r'^proto/', include('proto.urls',namespace="proto",app_name='proto'),),
url(r'^login/$',
auth_views.login,
{'template_name': 'login.html'},
name='auth_login'),
...
)
從我的web服務器實例,我可以啓動一個python shell並做一個反向查找。
$ django-admin.py shell
django-admin.py shell
Python 2.7.5 (default, May 16 2013, 20:16:09)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.core.urlresolvers import reverse
>>> reverse("proto:index")
'/proto/'
此外,我的網絡服務器顯示管理頁面罰款。
如果我註釋掉base.html
的{% url "proto:index" %}
,我得到以下錯誤:
NoReverseMatch at /proto/
Reverse for '"auth_logout"' with arguments '()' and keyword arguments '{}' not found.
的代碼工作正常,在本地主機(即django-admin.py runserver
)。
摘要,
- 的(a)適用於本地主機,
- (b)中管理的URL都解決了,
- (c)中的命名空間未得到解決,並且
- (d)其它網址沒有解決。
看起來你可能在''proto'的某個地方有一個拼寫錯誤,因爲在加載proto命名空間之前找到了url,管理網站的工作原理是否可以包括'proto.urls'?你是否已經將它添加到installed_apps? – bnjmn
實際上,錯字可能在你的模板中的某處,看看(或grep)類似''proto:index'的東西。我會先檢查你的索引和/或基本模板。 – bnjmn
感謝您的回答。沒有錯字;它在本地工作,移動線路不會改變解決方案。 – vin