Python django命名组url中的NoReverseMatch异常
我是django的新手,玩URL的时候遇到了这个问题, 我在我的Python django命名组url中的NoReverseMatch异常,python,django,django-views,django-urls,django-1.7,Python,Django,Django Views,Django Urls,Django 1.7,我是django的新手,玩URL的时候遇到了这个问题, 我在我的views.py中有一个视图,它将url反向到另一个视图 def index(request): username = request.session.get('username') if username is None: return HttpResponseRedirect(reverse('login_page')) #return HttpResponse("Testing view session
views.py中有一个视图,它将url反向到另一个视图
def index(request):
username = request.session.get('username')
if username is None:
return HttpResponseRedirect(reverse('login_page'))
#return HttpResponse("Testing view session not found")
else:
return HttpResponseRedirect(reverse('profile_page', kwargs = {'username': username,}))
#return HttpResponse("Testing view " + username)
现在代码将到达else
块,因为username
不是None
,所以这里是我的URLconf
urlpatterns = patterns('',
url(r'(?P<username>^)', views.profile, name = "profile_page"),)
urlpatterns=patterns(“”,
url(r'(?P^'),views.profile,name=“profile_page”),)
因此,简单地说,我正在调用使用命名参数用户名的profile\u页面
url,我正在从kwargs
传递相同的用户名,但我得到的是NoReverseMatch
异常消息:
找不到参数为“()”且关键字参数为“{'username':'dheerendra'}”的“profile_page”的反转。已尝试1个模式:[“用户/(?P^)]
要构建profile\u页面
URL,需要完整填写用户名
。您正在调用reverse('profile_page')
,但没有在kwargs中传递用户名。两件事:
- 您已经为url指定了一个命名组
用户名
,但实际上还没有为命名组指定正则表达式。您希望您的用户名
正则表达式匹配不同长度的用户名,因此需要:
url(r'?p\w+/$”,views.profile,name=“profile\u page”),
其中\w+
是正则表达式
- 第二,正如您将从上面的示例中看到的,您需要使用
$
终止正则表达式,以便像/myusername/otherstring/
这样的URL不会被错误地匹配