2016-04-17 3 views
0

Ich habe die folgende Form ... es funktionierte perfekt in Django 1.8, aber nicht jetzt in Django 1.9. Ich deinstallierte Registrierung redux so IDK, wenn das es beeinflussen würde, aber ich würde nicht denken. Wie auch immer, ich habe den folgenden Code:Form Fehler nach dem Wechsel zu Django 1.9 von Django 1.8

def save(self,datas,commit=True,): 
    user = super(RegistrationForm,self).save() 
    user.first_name=self.cleaned_data['fname'] 
    user.last_name=self.cleaned_data['lname'] 
    # user.set_password(self.cleaned_data['password1']) 
    user.username = self.cleaned_data['email'] 
    # user.is_active=False 
    # permission = Permission.objects.get(name='Can view poll') 
    # u.user_permissions.add(permission) 
    user.save() 

    r_user = RegisterUser(user=user,biography="default1", research_place="default2", studies="default3") 
    if commit: 
     r_user.activation_key = datas['activation_key'] 
     r_user.key_expires=datetime.datetime.strftime(datetime.datetime.now() + datetime.timedelta(days=2), "%Y-%m-%d %H:%M:%S") 
     r_user.save() 
     # print ('saving user: %s' % self.user) 
    return r_user 

def clean_username(self): 
    username = self.cleaned_data["username"] 
    try: 
     user.objects.get(username=username) 
    except user.DoesNotExist: 
     return username 
    raise forms.ValidationError(self.error_messages['duplicate_username']) 

Und ich bekomme den Fehler, dass 'Benutzer' nicht in clean_username definiert ist. Wer weiß was los ist?

Antwort

0

Sie verwenden user statt User möchten Sie User.objects.get(...) gleich für User.DoesNotExist.

Sie wollen das User Modell von django.auth.models

+0

Ok, danke .. Warum es 1,8 in Django nicht funktioniert? Ich dachte, ich verweise auf user = super (RegistrationForm, self) .save() – swedishfished

+0

'user = super (RegistrationForm, ...' ist eine Instanz, die Sie als 'user' definiert haben, damit Sie auf Attribute von dieser Instanz zugreifen können, Sie haben jedoch keine 'user'-Variable, die irgendwo in' clean_username' definiert ist, wie Sie in der Fehlermeldung sehen – Pythonista

Verwandte Themen