dddar
dddar

Reputation: 27

'ValidationError' object has no attribute 'get'

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

Answers (1)

neverwalkaloner
neverwalkaloner

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

Related Questions