2013-12-18 57 views
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)其它網址沒有解決。
+0

看起來你可能在''proto'的某個地方有一個拼寫錯誤,因爲在加載proto命名空間之前找到了url,管理網站的工作原理是否可以包括'proto.urls'?你是否已經將它添加到installed_apps? – bnjmn

+0

實際上,錯字可能在你的模板中的某處,看看(或grep)類似''proto:index'的東西。我會先檢查你的索引和/或基本模板。 – bnjmn

+0

感謝您的回答。沒有錯字;它在本地工作,移動線路不會改變解決方案。 – vin

回答

相關問題