2016-04-13 10 views
1

ich ein kleines Problem beim Versuch django Assistenten zu verwenden, und ich bin Kratzen meinem Kopf esDjango Modell-Assistent: IntegrityError Spalte „user_id“ kann nicht null sein

hier zu lösen, ist mein Modell:

class Profile(models.Model): 
    profile_user = models.OneToOneField(User,db_index=True) 
    studio = models.ForeignKey(Account) 

Und hier ist mein wizard.py:

from django.utils.translation import ugettext_lazy as _ 
from django.forms.models import modelform_factory 
from formtools.wizard.views import SessionWizardView 
from .models import * 

class NewModelWizard(SessionWizardView): 
    form_list = [ 
     (_('New model registration'),modelform_factory(User, fields=('username','password'))), 
     (_('Model data'), modelform_factory(Profile)) 
    ] 
template_name = "create_profile.html" 

def done(self,form_list, **kwargs): 
    user = form_list[0].save() 
    profile = form_list[1].save(commit=False) 
    profile.studio = self.request.user.account 
    profile.user = User.objects.get(id=user.id) 
    profile.save() 

Nach den Assistenten Vorlage, in denen ich folgende Fehlermeldung:

IntegrityError : (1048, "Column 'profile_user_id' cannot be null") 

Ich sehe nicht, was ich hier falsch mache, bekommt jemand eine Ahnung was passiert und wie man es repariert?

Antwort

4

Ihr Feldname lautet profile_user, verwenden Sie das also.

profile.profile_user = user 

Hinweis Sie müssen die Benutzer nicht von der DB wieder beschaffen, nur user verwenden.

+0

Oh ja, du hast Recht! Das war ein dummer Fehler ... Vielen Dank! –

Verwandte Themen