1
我遇到了一個奇怪的問題,雖然我現在已經找到了一個解決方案,但我認爲了解導致錯誤的原因會很有幫助。我有一個Django項目的應用程序和網址如下:django中的網址排序
urlpatterns = patterns('',
url(r'^$', UserProfileListView.as_view(),
name='userprofile_list'),
url(r'^(?P<username>[\[email protected]+-_]+)/changepassword/$',
password_change, name='change_password'),
url(r'^(?P<username>[\[email protected]+-_]+)/$',
profile_detail,
name='userprofile_detail'),
)
當我將瀏覽器指向change_password一切工作正常。不過是我的URL命令如下:
urlpatterns = patterns('',
url(r'^$', UserProfileListView.as_view(),
name='userprofile_list'),
url(r'^(?P<username>[\[email protected]+-_]+)/$',
profile_detail,
name='userprofile_detail'),
url(r'^(?P<username>[\[email protected]+-_]+)/changepassword/$',
password_change, name='change_password'),
)
我得到一個錯誤,由於404頁,未發現該視圖獲取的用戶名=用戶名/ changepassword而不是用戶名的事實=用戶名
會是什麼是否以這種方式解釋網址的原因,以及爲什麼它在第一種情況下工作?
因爲第一正則表達式捕獲兩者。這就是訂單很重要的原因。 –