![](/img/trans.png)
[英]TypeError: request() missing 1 required positional argument: 'url'
[英]Error “TypeError: FirstForm() missing 1 required positional argument: 'request'”
再会!
经常工作 views.py 时,您会遇到这种错误:
类型错误:FirstForm() 缺少 1 个必需的位置参数:“请求”
视图.py
def FirstForm(request):
if request.method == 'GET':
form = FirstForm()
else:
form = FirstForm(request.POST)
if form.is_valid():
name = form.cleaned_data['name']
email = form.cleaned_data['email']
date = form.cleaned_data['date']
number = form.cleaned_data['number']
try:
send_mail(email, (name, date, number), settings.EMAIL_HOST_USER, ['daribian@list.ru'])
except BadHeaderError:
return HttpResponse('Invalid header found.')
return redirect('success')
return render(request, 'index.html', {'form': form})
def successView(request):
return HttpResponse('Success!')
Сan你告诉我问题是什么?
您的视图与表单同名,因此如果您调用FirstForm
,您将调用视图,而不是表单。
因此,最好将视图命名为不同的名称,例如first_view
:
def first_view(request):
if request.method == 'GET':
form = FirstForm()
else:
form = FirstForm(request.POST, request.FILES)
if form.is_valid():
name = form.cleaned_data['name']
email = form.cleaned_data['email']
date = form.cleaned_data['date']
number = form.cleaned_data['number']
try:
send_mail(email, (name, date, number), settings.EMAIL_HOST_USER, ['daribian@list.ru'])
except BadHeaderError:
return HttpResponse('Invalid header found.')
return redirect('success')
return render(request, 'index.html', {'form': form})
注意:根据PEP-8 ,你应该在snake_case中编写函数,而不是camelCase ,所以
success_view
而不是。successView
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.