Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理Django模型中没有默认值的所需值_Django_Django 1.7 - Fatal编程技术网

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

如何处理Django模型中没有默认值的所需值,django,django-1.7,Django,Django 1.7,Django的版本是1.7 我有一个名为Booking的模型,它有一个名为is_deposition的布尔字段,用于描述预订是出发还是到达 class Booking(models.Model): ... is_departure = models.BooleanField() ... 当我迁移我的应用程序时,它将向我返回一条警告,is\u deposition没有默认值 但是,我不想为is_depenation添加默认值。这是一个必填值,需要用户填写。我也不想使用NullBool

Django的版本是1.7

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

class Booking(models.Model):
  ...
  is_departure = models.BooleanField()
  ...
当我迁移我的应用程序时,它将向我返回一条警告,
is\u deposition
没有默认值

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


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

问题是,Django将为所有现有的行设置什么值,这些行现在有一个
值,根据您的说法,该值不能为空,您无法满足此约束

如果您仍在开发中,那么您可以重置数据库,并且确实可以使用
BooleanField
,而不使用默认值(因为不会有违反此规则的现有行)


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

为什么不将默认值设置为
false
?这会对您的业务逻辑产生负面影响吗?我的猜测是否定的。即使最终用户需要选择该值,您仍然可以将该值默认为
False
@Brandon好的,我只是想看看是否有比将默认值设置为False更明智的方法。不是真的。如果最初将值设置为
False
在某种程度上影响了您的业务逻辑,那么您可以始终使用
NullBooleanField
并将初始值设置为null。