Django - form 사용자 정의 검증
2162 단어 Django
class MyForm(forms.Form):
telephone = forms.CharField(validators=[validators.RegexValidator("1[345678]\d{9}",message=' !')])
def clean_telephone(self):# clean_
telephone = self.cleaned_data.get('telephone')
exists = User.objects.filter(telephone=telephone).exists()
if exists:
raise forms.ValidationError(" !")
return telephone
이상 은 특정한 필드 를 검증 하 는 것 입 니 다. 데 이 터 를 검증 할 때 여러 필드 에 대한 검증 이 필요 하 다 면 clean 방법 을 다시 쓸 수 있 습 니 다.예 를 들 어 등록 할 때 제출 한 두 비밀번호 가 같은 지 판단 해 야 한다.그러면 다음 코드 를 사용 하여 완성 할 수 있 습 니 다.
class RegisterForm(forms.Form):
username = forms.CharField(max_length=100)
telephone = forms.CharField(validators=[validators.RegexValidator(r'1[3456789]\d{9}',message=" ")],error_messages={"required":" "})
password = forms.CharField(max_length=20,min_length=6)
repassword = forms.CharField(max_length=20,min_length=6)
def clean_telephone(self):
telephone = self.cleaned_data.get('telephone')
exists = User.objects.filter(telephone=telephone).exists()
if exists:
raise forms.ValidationError(message="%s " % telephone)
else:
return telephone
def clean(self):
#
# clean clean
clean_data = super().clean()
password = clean_data.get('password')
repassword = clean_data.get('repassword')
if password!= repassword:
raise forms.ValidationError(message=" ")
return clean_data
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.