Django url disspatcher匹配错误的正则表达式

时间:2017-04-28 14:51:26

标签: regex django

我创建了以下urlpatters

urlpatterns=[
     url(r'(?P<user_name>[a-zA-Z]+)/$', views.profile_view, 
     kwargs=None, name='userprofile'),
     url(r'(?P<user_name>[a-zA-Z]+)/interests/$',views.interest,name='interests')

]

但是当我输入url localhost:8000 / mainuser / interest /它将它视为第一个url并打开profile_view。它显然与'/'匹配。帮助我。

1 个答案:

答案 0 :(得分:2)

您应该使用行首字符^开始您的网址格式。因为您没有包含此字符,所以第一个模式的正则表达式匹配任何以1个或多个字符结尾后跟正斜杠的URL。

urlpatterns=[
     url(r'^(?P<user_name>[a-zA-Z]+)/$', views.profile_view, kwargs=None, name='userprofile'),
     url(r'^(?P<user_name>[a-zAZ]+)/interests/$',views.interest,name='interests'),
]