具有null = True的OneToOneField不允许空字段

mel*_*bic 6 python sql django django-models

我有这两个班:

class Bill(models.Model):
  date = models.DateField()
  total_amount_chf = models.DecimalField('Cost (in CHF)', max_digits=10, decimal_places=2)

class ProjectParticipation(models.Model):
  project = models.ForeignKey('Project')
  user = models.ForeignKey(User)
  is_admin = models.BooleanField()
  bill = models.OneToOneField(Bill, on_delete=models.SET_NULL, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

当我现在构建SQL数据库时,我在ProjectParticipation的表中得到以下字段:

 bill_id integer NOT NULL,
 CONSTRAINT expenses_projectparticipation_bill_id_fkey FOREIGN KEY (bill_id)
  REFERENCES expenses_bill (id) MATCH SIMPLE
  ON UPDATE NO ACTION ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED,
Run Code Online (Sandbox Code Playgroud)

现在当我想插入一个没有Bill的ProjectParticipation时,我得到一个"列中的空值"bill_id"违反了非空约束".

该怎么做呢?

Aam*_*nan 6

可能是您Null Constraint在同步数据库后添加了后者.删除数据库并重新同步数据库(如果您没有使用Django-South,请确保已迁移架构更改)