【发布时间】:2021-01-01 11:03:01
【问题描述】:
我迷失了表单验证和显示错误消息的方式
我的模板中有一个“自定义”表单显示(逐个字段显示)
我需要在 2 个字段之间进行验证,所以我应该使用 clean 方法 如果勾选复选框,文本输入不能为空 我想将错误消息绑定到我的文本字段,但没有显示错误消息...
forms.py
class CreateForm(forms.Form):
def __init__(self, request, *args, **kwargs):
super(CreateForm, self).__init__(*args, **kwargs)
self.fields["bra_00A_act"] = forms.BooleanField(label = "", required = False)
self.fields["bra_00A_lib"] = forms.CharField(label = "", required = False)
def clean(self):
cleaned_data = super(CreateForm, self).clean()
if cleaned_data["bra_00A_act"] and cleaned_data["bra_00A_lib"] == "":
self.add_error('bra_00A_lib', "custom error message")
raise forms.ValidationError('error')
return cleaned_data
模板html
<form id="randomization_settings_form" method="POST" class="post-form">
{% csrf_token %}
<input id="new_parameters" type="hidden" name="parameters" value="">
{{ form.non_field_errors }}
<table id="table_parametrage" class="table table-hover">
<thead>
<tr>
<th>Bras A</th>
<th>-----</th>
</tr>
<tr>
<td colspan="2">
<div class="fieldWrapper">
{{ form.bra_00A_act.errors }}
{{ form.bra_00A_act }}
{{ form.bra_00A_lib.errors }}
{{ form.bra_00A_lib }}
</div>
</td>
</tr>
</thead>
</table>
...
</form>
【问题讨论】:
标签: python django forms validation