python django中/ *** /(1048,“Column' ***'不能为null”)的IntegrityError

时间:2012-08-20 10:56:21

标签: python django

您好我收到此错误,因为我的additional user info modeluser = models.OneToOneField(User))中有一个字段,我在注册时没有填写(因为我想让用户稍后再做)。

我想知道除了在db中允许空字段之外是否还有办法解决这个问题?

干杯

2 个答案:

答案 0 :(得分:8)

尝试

user = models.OneToOneField(User, null=True, blank=True)

然后重新创建您的数据库。 您可以在https://docs.djangoproject.com/en/1.4/ref/models/fields/#null

上找到更多信息

否则您可以使用代理模型:

class UserExtraInfo(User):
#here your extra fields

在这种情况下,您不需要与User同时创建UserExtraInfo实例。 阅读https://docs.djangoproject.com/en/1.4/topics/db/models/#model-inheritance

的更多信息

答案 1 :(得分:0)

当您将某个数据库字段定义为非null并传递

时,基本上会发生完整性错误

空值或空值

我假设您通过django表单将值存储在数据库中

所以在这种情况下你可以这样做

if request.method == POST:#无论方法

   get_form_obj = form.save(commit = False)

不要忘记在模型用户字段中进行更改,例如(null = True,blank = True)

希望这会有所帮助