mbti / users /forms.py
asemxin2000's picture
Deploy Django MBTI test to Hugging Face Space
d2f89d7 verified
Raw
History Blame Contribute Delete
1.48 kB
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import AuthenticationForm
class RegisterForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput, min_length=8)
confirm_password = forms.CharField(widget=forms.PasswordInput)
class Meta:
model = User
fields = ["username", "email", "password"]
def clean_username(self):
"""验证用户名是否已存在"""
username = self.cleaned_data.get('username')
if username and User.objects.filter(username=username).exists():
raise forms.ValidationError("该用户名已被注册,请使用其他用户名")
return username
def clean_email(self):
"""验证邮箱是否已存在"""
email = self.cleaned_data.get('email')
if email and User.objects.filter(email=email).exists():
raise forms.ValidationError("该邮箱已被注册,请使用其他邮箱")
return email
def clean(self):
cleaned = super().clean()
password = cleaned.get("password")
confirm_password = cleaned.get("confirm_password")
if password and confirm_password and password != confirm_password:
raise forms.ValidationError("两次密码不一致")
return cleaned
class LoginForm(AuthenticationForm):
username = forms.CharField(max_length=150)
password = forms.CharField(widget=forms.PasswordInput)