Django_view_u()接受1个位置参数,但给出了2个

2024-05-15 22:29:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我的django项目遇到了一个问题。 如下所示:我有一个简单的regexp来匹配用户

url(r'^users/\w+/$', views.user)

而且效果很好。

然后我更改了regexpt,因为用户登录时有更新,所以现在是(我添加了点符号):

url(r'^users/([a-zA-Z0-9.]+)/$', views.user)

现在我得到了“user()takes 1 positional argument but 2 were given”django error。

视图的定义如下:

def user(request):
    return render(request, 'home/user_page.html')

Tags: 项目django用户urlrequest符号usersviews
1条回答
网友
1楼 · 发布于 2024-05-15 22:29:26

如错误消息中所述,您的视图需要采用第二个参数:

def user(request, second_param):
    return render(request, 'home/user_page.html')

这是因为您在regex中添加了一个组(括号之间的部分),Django将任何匹配的组作为参数传递给视图。

如果您喜欢前面的行为,请从正则表达式中删除括号:

r'^users/[a-zA-Z0-9.]+/$'

相关文件:https://docs.djangoproject.com/en/1.9/topics/http/urls/#how-django-processes-a-request

相关问题 更多 >