from django import forms from django.contrib.auth import login, logout, authenticate class UserLoginForm(forms.Form): username = forms.CharField() password = forms.CharField(widget=forms.PasswordInput()) def clean(self): cleaned_data = self.cleaned_data username = cleaned_data.get('username') password = cleaned_data.get('password') if username is None or password is None: raise forms.ValidationError("Invalid username or password") user = authenticate(username=username, password=password) if not user: raise forms.ValidationError("Invalid username or password") if not user.is_active: raise forms.ValidationError("User is blocked") cleaned_data['user'] = user return cleaned_data