Django 如何在发生此情况的字段附近的模板中打印ValidationError?
我很抱歉:Django 如何在发生此情况的字段附近的模板中打印ValidationError?,django,Django,我很抱歉: def clean_password(self): value_password = self.cleaned_data.get('password') if len(str(self.cleaned_data['password'])) < 6: raise forms.ValidationError("Password must been more then 6 symbols") elif len(str(self.cleaned_
def clean_password(self):
value_password = self.cleaned_data.get('password')
if len(str(self.cleaned_data['password'])) < 6:
raise forms.ValidationError("Password must been more then 6 symbols")
elif len(str(self.cleaned_data['password'])) > 45:
raise forms.ValidationError("Password must been less 45 symbols")
elif value_password is None:
raise forms.ValidationError("Field of password can't are blank")
return value_password
def clean_password2(self):
value_password2 = self.cleaned_data.get('password2')
if len(str(self.cleaned_data['password2'])) < 6:
raise forms.ValidationError(self.error_messages['password_mismatch'],
code='password_mismathc')
elif len(str(self.cleaned_data['password2'])) > 45:
raise forms.ValidationError("Password must been less 45 symbols")
return value_password2
def clean(self):
super(Form_registration, self).clean()
data = self.cleaned_data
if data["password"] != data["password2"]:
raise forms.ValidationError("Password must been are equal")
return data
def clean_密码(self):
value\u password=self.cleaned\u data.get('password'))
如果len(str(self.cleaned_data['password'])小于6:
raise forms.ValidationError(“密码必须超过6个符号”)
elif len(str(自清理的_数据['password'])>45:
raise forms.ValidationError(“密码必须少于45个符号”)
elif值\u密码为无:
raise forms.ValidationError(“密码字段不能为空”)
返回值\u密码
def clean_密码2(自身):
value\u password2=self.cleaned\u data.get('password2')
如果len(str(self.cleaned_data['password2'])小于6:
raise forms.ValidationError(self.error\u消息['password\u mismatch'],
code='password\u不匹配')
elif len(str(自清理的_数据['password2'])>45:
raise forms.ValidationError(“密码必须少于45个符号”)
返回值\u密码2
def清洁(自清洁):
超级(表格注册,自我).clean()
数据=自清理的数据
如果数据[“密码”]!=数据[“密码2”]:
raise forms.ValidationError(“密码必须等于”)
返回数据
如果我写这个{form.errors}},然后在首页打印错误,但我希望错误打印在表单密码附近
我必须做什么 更改
clean
方法,通过将字段名传递给该方法来引发验证错误
def clean(self):
super(Form_registration, self).clean()
data = self.cleaned_data
if data["password"] != data["password2"]:
raise forms.ValidationError({'password': ["Passwords must be the same."]})
return data
编辑:
以下是您的模板的外观:
<form action="" method="post">
{% csrf_token %}
{{ form.non_field_errors }}
<div class="fieldWrapper">
{{ form.password.errors }}
<label for="{{ form.password.id_for_label }}">Password:</label>
{{ form.password }}
</div>
<div class="fieldWrapper">
{{ form.password2.errors }}
<label for="{{ form.password2.id_for_label }}">Confirm Password:</label>
{{ form.password2 }}
</div>
</form>
{%csrf_令牌%}
{{form.non_field_errors}}
{{form.password.errors}
密码:
{{form.password}}
{{form.password2.errors}
确认密码:
{{form.password2}}
{{form.password1.errors}
只需在form.field\u id.errors中添加您的字段id,并将其放在所有表单元素旁边。我在首页看到“密码必须相等”和在页面底部看到“密码必须相等”对不起,我错过了这一部分。我已经添加了您应该使用的模板,或者至少类似的模板。