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,并将其放在所有表单元素旁边。

我在首页看到“密码必须相等”和在页面底部看到“密码必须相等”对不起,我错过了这一部分。我已经添加了您应该使用的模板,或者至少类似的模板。