我有这个型号:
class Part(models.Model):
serial_number = models.CharField(max_length=15, null=True, blank=True, validators=[validate_serial], unique=True)
....
serial_number可以为空并且为null,因为所有部件都不一定具有序列号。但是,在存储没有序列号的一个部件后,空白不再是唯一的,我收到此错误:
此序列号的部分已存在。
有解决方法吗?我已经看过this question,但我没有模型表格。我要么使用管理员,要么直接在代码中执行。
答案 0 :(得分:4)
我遇到了同样的问题并通过在保存时为字段指定None
来修复它。
指定default=None
也可能有所帮助。
答案 1 :(得分:-1)
我非常确定在唯一性约束中不考虑空值。解决这个问题的方法是不使用null,而是使用空字符串。因此,请删除null=True
。