制作字段"空白=错误"在生产中

时间:2014-03-18 09:07:43

标签: django python-2.7 django-models django-forms

我已经部署了我的Django网站,但刚才意识到我没有强制要求其中一个字段。对于目前的领域,

  

blank = True,null = True

现在,如果我继续将其更改为

  

空白=假

会对数据库及其中已有的数据产生影响吗?

2 个答案:

答案 0 :(得分:3)

没有。 blank仅在应用程序级别执行。

答案 1 :(得分:1)

正如https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.Field.blank所讨论的那样:

  • “空白”是关于表单验证;您可以随时更改此信息而不会影响 你的数据库。

  • “null”是关于数据库中的存储,而不是关于表单验证

因此,如果您从“blank = True,null = True”更改为“blank = False”,您仍然可以在表中存储空值 - 但是您无法实际获得那些空值到数据库中,因为表单需要输入。

这可能正是您想要的(并且不需要进行数据库迁移)。

如果要从数据库中获取现有空值,请更新数据,然后将空白和null都设置为False。但是,此时,您需要进行数据库迁移(通过South或仅使用ALTER TABLE ... ALTER命令直接更改数据库)。