我为用户创建了一个登录我网站的功能。但是,它仅在我使用管理员帐户登录时才有效,否则无法检测到已存在的注册用户并说“这是用户不存在”。
以下是代码:
class LoginForm(forms.Form):
username = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput)
def clean(self, *args, **kwargs):
username = self.cleaned_data["username"]
password = self.cleaned_data["password"]
if username and password:
user = authenticate(username=username, password=password)
if not user:
raise forms.ValidationError("This is user does not exist")
if not user.check_password(password):
raise forms.ValidationError("Incorrect password")
if not user.is_active:
raise forms.ValidationError("This user is not longer active")
return super(LoginForm, self).clean(*args, *kwargs)
登录视图:
def login_view(request):
form = LoginForm(request.POST or None)
title = "Log in"
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(username=username, password=password)
login(request, user)
return redirect('../../index/')
return render(request, 'user/loginRegister.html', {'form': form, 'title': title})
感谢您的帮助!