0

我在 Django 模型的外键字段中将默认值设置为 0。但它正在引发 IntigrityError (1048, "Column 'country_id' cannot be null")

嗨,我有这样的代码:

class TestModel(models):
    name = models.CharField(max_length=255, blank=True)
    reg_from = models.CharField(max_length=255, blank=True)
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES, blank=True, null=True)
    country = models.ForeignKey(Country, blank=True, default=0)

出于某种原因,在保存 TestModel 时,我无法提供国家信息。我想稍后更新。

克里什

4

4 回答 4

1

它会引发错误,因为您的 Country 模型中没有对象具有PK = 0.

如果您不想将您的字段设置为,null则只需使用pk=0like:创建一个 Country 对象Country.objects.create(name='No Country', pk=0)

虽然,将字段设置为null并拥有default=0可能是一个更清洁的解决方案。

于 2012-12-15T16:11:21.120 回答
0

尝试 None 而不是 0。0 是一个整数,无论​​如何它都不应该工作。

于 2012-12-15T05:36:00.383 回答
0

我将字段 null 作为快速而肮脏的解决方案。

于 2012-12-28T04:50:34.187 回答
-1

将您的定义更改为:

country = models.ForeignKey(Country, blank=True, null=True, default=0)

null=True属性将在数据库中的列上设置 NULL 参数country,否则您应该为该列设置一个值。

也不default=0是必需的,因为默认值将为空。

于 2012-12-15T05:04:56.863 回答