2014-04-23 141 views
1

我在Ubuntu 12.04上運行Django 1.4 w/Python 2.7。Django NoReverseMatch的URL

我有一個網站,我已經添加了一個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文件,並驗證了命名空間是正確的 - 每個人都在我的團隊已經在本地驗證了這一點。

項目urls.py:

urlpatterns = patterns('', 
    url(r'^common/', include('common.urls', namespace='common')), 
) 

共同urls.py:

utilitiespatterns = patterns('', 
    url(r'^$', views.ConversionUploadView.as_view(), name='index'), 
) 

urlpatterns = patterns('common.views', 
    url(r'^utilities/$', include(utilitiespatterns, namespace='utilities')), 
) 

顯然有比我在這裏投入了大量的多個URL路徑。這只是爲了讀者。

在服務器上,我清除了所有的.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

我能夠重新啓動服務器,一切正常。如果有人解釋發生了什麼,我會很樂意用解決方案投票給他們。 – Rico

回答

0

似乎你沒有重新啓動服務器上的uwsgi進程。

+0

我正在重新啓動所有服務。我觸摸了wsgi文件(它應該強制重啓)。 – Rico