Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django表单字段验证错误_Python_Django - Fatal编程技术网

Python Django表单字段验证错误

Python Django表单字段验证错误,python,django,Python,Django,当用户提交表单并引发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

当用户提交表单并引发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})

如错误所示,当表单无效时,视图不会返回post请求的响应

可以通过将最终返回语句移出if块来修复此问题。这样,视图将呈现模板并显示无效表单及其错误

else:
    form = LocationForm()
return render(request, 'add_location.html', {'form': form})

在表单中创建相应字段时,是否指定了默认参数blank=True?是的,该字段具有blank=True,null=True错误消息清楚地显示问题在视图中。您应该发布该视图的代码,而不是无关的表单方法。请尝试执行此代码:
如果len(self.cleaned_data['street_number'])<1
表单似乎没有问题,请发布您的视图