我遇到了一个奇怪的问题,虽然我现在找到了解决方案,但我认为了解导致错误的原因会有所帮助。我在 Django 项目中有一个应用程序,网址如下:
urlpatterns = patterns('',
url(r'^$', UserProfileListView.as_view(),
name='userprofile_list'),
url(r'^(?P<username>[\w.@+-_]+)/changepassword/$',
password_change, name='change_password'),
url(r'^(?P<username>[\w.@+-_]+)/$',
profile_detail,
name='userprofile_detail'),
)
当我将浏览器指向 change_password 时,一切正常。但是,我的网址排序如下:
urlpatterns = patterns('',
url(r'^$', UserProfileListView.as_view(),
name='userprofile_list'),
url(r'^(?P<username>[\w.@+-_]+)/$',
profile_detail,
name='userprofile_detail'),
url(r'^(?P<username>[\w.@+-_]+)/changepassword/$',
password_change, name='change_password'),
)
由于视图接收的是用户名=用户名/更改密码而不是用户名=用户名,我收到一个错误 404 页面未找到
以这种方式解释 url 的原因是什么,为什么它在第一个实例中起作用?