Django _view_()采用1个位置参数,但有2个被赋予

时间:2016-07-02 07:27:47

标签: python django

我的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')

1 个答案:

答案 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