我在Django模型的外键字段中将默认值设置为0。但它提出了IntigrityError(1048,“Column'country_id'不能为空”)
嗨,我的代码如下:
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时,我无法提供国家/地区信息。我想稍后更新。
Krish
答案 0 :(得分:1)
由于您的国家/地区模型中没有PK = 0
的对象,因此引发错误。
如果您不想将字段设置为null
,则只需使用pk=0
创建一个国家/地区对象,例如:Country.objects.create(name='No Country', pk=0)
。
虽然将字段设置为null
并拥有default=0
可能是一个更清晰的解决方案。
答案 1 :(得分:0)
尝试None而不是0. 0是一个整数,它无论如何都不应该工作。
答案 2 :(得分:0)
我将字段null作为快速而肮脏的解决方案。
答案 3 :(得分:-1)
将您的定义更改为:
country = models.ForeignKey(Country, blank=True, null=True, default=0)
null=True
属性将在数据库中的country
列上设置NULL参数,而不应该为此列设置值。
此外,default=0
也不是必需的,因为默认值为null。