如何处理Django模型中没有默认值的必填值

How to deal with the required value which does not have a default value in Django model

我的Django版本是1.7。

我有一个名为Booking的模型,它有一个名为is_departure的布尔字段,用于描述预订是出发还是到达。

class Booking(models.Model):
  ...
  is_departure = models.BooleanField()
  ...

当我迁移我的应用程序时,它会 return 警告我 is_departure 没有默认值。

但是,我不想为 is_departure 添加默认值。这是必填值,需要用户填写。我也不想使用 NullBooleanField,因为 is_departure 不应该为空。

有没有什么好的方法可以去除这个警告?

问题是,Django 将把什么作为所有 现有行的值 现在有一个 is_departure 值,根据你的说法,不能为空,你不能满足这个限制。

如果你还在开发,那么你可以重置数据库,你确实可以使用 BooleanField 没有默认(因为没有现有的行违反这个)

否则,我会让迁移在现有行上放置一个 is_departure 值(true 或 false),与您的业务逻辑一致