Python Django正则表达式验证未按预期工作

Python Django正则表达式验证未按预期工作,python,django,regex,django-models,django-forms,Python,Django,Regex,Django Models,Django Forms,试图通过对密码的正则表达式验证对django模型表单使用自定义验证|使用clean方法表单重新键入密码工作得非常好,但clean没有按预期工作。请任何人指出错误或说明此主题,因为我被困django.org不适合我,供参考 此外,如果我提供了错误的密码,它可以轻松地将其存储在数据库中,而不会引发错误 from django import forms from .models import Person from django.contrib.auth.password_validation imp

试图通过对密码的正则表达式验证对django模型表单使用自定义验证|使用clean方法表单重新键入密码工作得非常好,但clean没有按预期工作。请任何人指出错误或说明此主题,因为我被困django.org不适合我,供参考

此外,如果我提供了错误的密码,它可以轻松地将其存储在数据库中,而不会引发错误

from django import forms
from .models import Person
from django.contrib.auth.password_validation import validate_password
from django.core.validators import ValidationError, RegexValidator
import re

class FormClass(forms.ModelForm):
    Password = forms.CharField(widget=forms.PasswordInput, required=True, validators=[RegexValidator(regex=r'[A-Za-z0-9@#$%^&+=]{8,}', message="Password should contain Upper, lower, digit and Special Character.")])
    ReType_Password = forms.CharField(widget=forms.PasswordInput, required=True, validators=[RegexValidator(regex=r'[A-Za-z0-9@#$%^&+=]{8,}', message="Password should contain Upper, lower, digit and Special Character.")])

    def clean_password(self):
        super(FormClass, self).clean()
        a = self.cleaned_data['Password']
        b = self.cleaned_data['ReType_Password']
        if a != b:
            raise ValidationError("Password not Matched")
        return self.cleaned_data

    class Meta:
        model = Person  
        fields = '__all__'

这回答了你的问题吗?这回答了你的问题吗?