Reputation: 27
I am making a form using python 3.5 and DJANGO 1.8 and I am getting this error-->
I tried reading this Post but I already have returned clean_data so no use
AttributeError at /login
My forms.py file
class UserLoginForm(forms.Form):
username=forms.CharField(max_length=40)
password=forms.CharField(max_length=40,widget=forms.PasswordInput)
def clean(self,*args,**kwargs):
username=self.cleaned_data.get("username")
password=self.cleaned_data.get("password")
user=authenticate(username=username,password=password)
if not user:
return forms.ValidationError("This user doesn't exist")
if not user.check_password(password):
return forms.ValidationError("Incorrect Passwordt")
if not user.is_active:
return forms.ValidationError("User nO longer Active")
return super(UserLoginForm,self).clean(*args,**kwargs)
Traceback:
Environment:
Request Method: POST
Request URL: http://localhost:8000/login
Django Version: 1.8
Python Version: 3.5.4
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mainpage',
'signup',
'login',
'rest_framework',
'corsheaders')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware')
Traceback:
File "C:\Users\vaibhav2\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\handlers\base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\vaibhav2\PycharmProjects\MajorProject\src\login\views.py" in login
15. username=form1.cleaned_data.get("username")
Exception Type: AttributeError at /login
Exception Value: 'ValidationError' object has no attribute 'get'
If there is anything else you people want me to post tell me in the comments .Thanks in advance
Upvotes: 0
Views: 4384
Reputation: 47364
ValidationError
is not supposed to be returned in clean
method, raise this error instead to let Django know that something went wrong:
class UserLoginForm(forms.Form):
username=forms.CharField(max_length=40)
password=forms.CharField(max_length=40,widget=forms.PasswordInput)
def clean(self,*args,**kwargs):
username=self.cleaned_data.get("username")
password=self.cleaned_data.get("password")
user=authenticate(username=username,password=password)
if not user:
raise forms.ValidationError("This user doesn't exist")
if not user.check_password(password):
raise forms.ValidationError("Incorrect Passwordt")
if not user.is_active:
raise forms.ValidationError("User nO longer Active")
return super(UserLoginForm,self).clean(*args,**kwargs)
Upvotes: 4