Django 模型向导:完整性错误列"user_id"不能为空



我在尝试使用django向导时遇到了一个小问题,我正在挠头解决它

这是我的型号:

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

这是我的魔法。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()

提交向导后,我遇到以下错误:

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

我看不出我在这里做错了什么,有人知道发生了什么以及如何解决吗?

您的字段名是profile_user,所以请使用它。

profile.profile_user = user

请注意,您不必从数据库中重新获取用户,只需使用user即可。

最新更新