2016-04-13 10 views
1

nullにすることはできませんジャンゴ・ウィザードを使用しようとすると、私は若干の問題を取得し、私はここでDjangoのモデルウィザード:IntegrityErrorコラム「USER_ID」は

にそれを解決するために、私の頭を悩まています、私のモデルである:

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

そしてここでは私のwizard.pyです:

012:

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() 

ウィザードを提出した後、私は次のエラーが発生します

私はここで間違っているとは思わないが、誰が何が起こっているのか、それを修正する方法についての手掛かりを得ることができますか?

答えて

4

フィールド名はprofile_userですので、それを使用してください。

profile.profile_user = user 

はあなただけuserを使用し、DBからユーザーを再フェッチする必要はありません。

+0

ああ、そうですよ!それは愚かな間違いだった...多くのありがとう! –

関連する問題