2024-05-29 15:25:17 +08:00
|
|
|
from django import forms
|
2024-06-15 12:34:06 +08:00
|
|
|
from django.contrib.auth import get_user_model
|
2024-05-29 15:25:17 +08:00
|
|
|
from django.contrib.auth.forms import AuthenticationForm
|
|
|
|
|
|
|
|
|
2024-06-15 12:34:06 +08:00
|
|
|
User = get_user_model()
|
|
|
|
|
|
|
|
|
|
|
|
class EmailAuthenticationForm(AuthenticationForm):
|
2024-05-29 15:25:17 +08:00
|
|
|
username = forms.EmailField(label="Email", required=True)
|
2024-06-15 12:34:06 +08:00
|
|
|
password = forms.CharField(label="Password", widget=forms.PasswordInput, required=True)
|
|
|
|
|
|
|
|
def clean(self):
|
|
|
|
email = self.cleaned_data.get('username')
|
|
|
|
password = self.cleaned_data.get('password')
|
|
|
|
|
|
|
|
if email and password:
|
|
|
|
try:
|
|
|
|
user = User.objects.get(email=email)
|
|
|
|
if not user.check_password(password):
|
|
|
|
raise forms.ValidationError('请输入一个正确的用户名和密码。注意,两者都区分大小写。')
|
|
|
|
except User.DoesNotExist:
|
|
|
|
raise forms.ValidationError('请输入一个正确的用户名和密码。注意,两者都区分大小写。')
|
|
|
|
|
|
|
|
return self.cleaned_data
|