2017-06-19 12 views
0

こんにちは、私はジャンゴで真偽を持ついくつかの問題を持っているので、それは私がview.py「UserLoginForm」オブジェクトが属性を持っていない「cleanned_data」ジャンゴ

from django.shortcuts import render, redirect 
    from django.contrib.auth import authenticate, login, logout, get_user_model 
    from django.shortcuts import render 
    from django.views import generic 
    from FS import forms 

    from .forms import UserLoginForm, UserRegisterForm 

def login_view(request): 
    form= UserLoginForm(request.POST or None) 
    title = "Connexion" 
    if form.is_valid(): 
     username = form.cleanned_data.get("username") 
     password = form.cleanned_data.get("password") 
     user = authenticate(username=username, password=password) 
     login(request.user.is_authenticated()) 

    return render(request,"forms.html",{"form":form, "title": title}) 



def register_view(request): 
    print(request.user.is_authenticated()) 
    title= "Inscription" 
    print(request.user.is_authenticated()) 
    form = UserRegisterForm(request.POST or None) 
    if form.is_valid(): 
     user = form.save(commit=False) 
     password = form.cleanned_data.get('password') 
     user.set_password(password) 
     user.save() 
     login(request, user) 
     print(request.user.is_authenticated()) 
     #redirect 

    context = { 
    "form":form, 
    "title":title 
    } 
    return render(request,"forms.html", context) 

def logout_view(request): 
     logout(request) 
     return render(request, "forms.html") 

に持っているものだと、それはforms.py

from django.contrib.auth.models import User 
from django import forms 
from django.contrib.auth import authenticate, login, logout, get_user_model 

from django.forms import ModelForm 

User = get_user_model() 

class UserLoginForm(forms.Form): 
    username = forms.CharField() 
    password= forms.CharField(widget=forms.PasswordInput) 

    def clean(self, *args, **kwargs): 


     username = self.cleanned_data.get('username') 
     passworrd = self.cleanned_data.get('password') 


     if username and password: 
      user = authenticate(username=username, password=password) 
      if not user: 
       raise forms.ValidationError('This user does not exist') 
      if not user.check_password(password): 
       raise forms.ValidationError('Mot de passe incorrecte') 
      if not user.is_active: 
       raise forms.ValidationError('plus valide') 
     return super(UserLoginForm, forms).clean(*args, **kwargs) 




class UserRegisterForm(forms.ModelForm): 

    class Meta: 
     model = User 
     fields = ['username', 'password'] 
にあります

このエラーは常に発生します。 "'UserLoginForm'オブジェクトには 'cleanned_data'属性がありません。

私は分かりません。前にform.is_valid()を作成する方法がわかりません。コードを変更して同じものにする方法がわかりません

答えて

2

これはform.cleaned_dataではなく、form.cleanned_dataです。

あなたはform.cleaned_dataform.cleanned_dataを変更する必要がありdocumentation..

+0

ありがとう、私は非常にスマートではありません! – Anisotropie

1

を参照し、Djangoのフォームについての詳細を知っています。

関連する問題