我有一个表单,如果所有字段都无效,则会引发ValidationErrors。但是,如果没有从ModelChoiceField中选择任何选项,则该表单既不会提交(这很好),也不会在模板中引发任何ValidationError。如果在提交时没有选择类别,if request.method == 'POST':似乎返回False。第一个...呈现:第一个
if request.method == 'POST':
False
bmvo0sr51#
如果在提交时没有选择类别,if request.method == 'POST':似乎返回False。浏览器甚至不发送请求,因为HTML5验证失败。由于input上存在visibility: hidden,因此未显示验证消息。
input
visibility: hidden
.category-wrapper input { position: fixed; visibility: hidden; }
...导致在浏览器控制台中显示此错误:name='category'的无效窗体控件无法获得焦点。相反,应使其透明、无宽度和无边距:
.category-wrapper input { margin: 0; opacity: 0; width: 0; }
vh0rcniy2#
这是因为视图传递了第一个if
创建表单
# create a form instance and populate it with data from the request: form = PollersForm(request.POST)
然后检查它是否有效
# check whether it's valid: if form.is_valid():
由于它是无效的,视图返回到第一个缩进,并呈现包含内部错误的表单的模板。
else: form = PollersForm() return render(request, 'pollinator/raise_poller.html', {'form': form})
最好的办法是从else中取出request.method的干净形式
form = PollersForm() return render(request, 'pollinator/raise_poller.html', {'form': form})
cunj1qz13#
必需= true仅检查字段中是否有内容由此是否可以在响应数据中检查该字段是否有默认值?
3条答案
按热度按时间bmvo0sr51#
如果在提交时没有选择类别,
if request.method == 'POST':
似乎返回False
。浏览器甚至不发送请求,因为HTML5验证失败。
由于
input
上存在visibility: hidden
,因此未显示验证消息。...导致在浏览器控制台中显示此错误:
name='category'的无效窗体控件无法获得焦点。
相反,应使其透明、无宽度和无边距:
vh0rcniy2#
这是因为视图传递了第一个if
创建表单
然后检查它是否有效
由于它是无效的,视图返回到第一个缩进,并呈现包含内部错误的表单的模板。
最好的办法是从else中取出request.method的干净形式
cunj1qz13#
必需= true
仅检查字段中是否有内容
由此
是否可以在响应数据中检查该字段是否有默认值?