[英]Django form field validation error
当用户提交表单并引发 ValidationError 异常时,我试图验证表单字段是否为 None:
def clean_street_number(self):
if self.cleaned_data['street_number'] is None:
raise ValidationError(
('You forgot to write your street number')
)
else:
return self.cleaned_data['street_number']
当我填写表格并在没有街道号码的情况下提交时,Django 崩溃并显示以下消息:
The view core.decorators.add_location didn't return an HttpResponse object. It returned None instead.
视图.py
def add_property_location(request):
if request.method == 'POST':
form = LocationForm(request.POST)
if form.is_valid():
p = form.save(commit=False)
p.user = get_object_or_404(User, pk=request.user.pk)
p.save()
return redirect('add_description')
else:
form = LocationForm()
return render(request, 'add_location.html', {'form': form})
正如错误所暗示的那样,当表单无效时,您的视图不会返回对发布请求的响应。
您可以通过将最后的 return 语句移出 if 块来解决此问题。 这样,视图将呈现模板并显示无效表单及其错误。
else:
form = LocationForm()
return render(request, 'add_location.html', {'form': form})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.