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

时间:2015-01-25 17:05:29

标签: django django-1.7

我的Django版本是1.7。

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

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

当我迁移我的应用时,它会向我返回is_departure没有默认值的警告。

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

有什么好方法可以删除此警告吗?

1 个答案:

答案 0 :(得分:2)

问题是,Django将所有现有行的值作为现在具有is_departure值的值,根据您,不能为空,您无法满足这种约束。

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

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