我的django项目遇到了问题。 它如下:我有一个简单的正则表达式来匹配用户
url(r'^users/\w+/$', views.user)
它完美无缺。
然后我更改了正则表达式,因为用户中有更新'登录,所以现在是(我添加了点符号):
url(r'^users/([a-zA-Z0-9.]+)/$', views.user)
现在我得到" user()接受1个位置参数但是2个被给出" django错误。
视图的定义如下:
def user(request):
return render(request, 'home/user_page.html')
答案 0 :(得分:7)
如错误消息中所述,您的视图需要采用第二个参数:
def user(request, second_param):
return render(request, 'home/user_page.html')
这是因为你在正则表达式中添加了一个组(括号内的部分),Django将任何匹配的组作为参数传递给视图。
如果您更喜欢以前的行为,请从正则表达式中删除括号:
r'^users/[a-zA-Z0-9.]+/$'
相关文档:https://docs.djangoproject.com/en/1.9/topics/http/urls/#how-django-processes-a-request