django null和空字符串

zen*_*enk 9 database django django-models

我发现当我form field通过表单插入任何字符串时,它会将其捕获为空字符串''.

但是,当我form field通过表单插入整数时,它将其捕获为[null].

这是好习惯吗?字符串应该null在数据库中也一样吗?

Dav*_*ave 5

这是一种很好的做法.如果允许字符串null,则有两种方法可以使用空字符串:null"".这为您提供了多个要检查的值,这是低效且混乱的.

这是一个Django的惯例,但较好的方法是所有的应用程序,除非你有需要null意味着不同的东西"".

  • 它可能是'django practice',但在数据库中一般使用空字符串来表示缺失的数据是不好的做法.这就是NULL的用途.我真的希望这不是django的标准做法. (9认同)
  • 如果在我的数据库中我将​​字段设置为ALLOW NULL,那么我希望None存储为NULL,而不是空字符串.Django可以使用它的约定,但是Django不一定是访问数据库的唯一系统.如果单独的应用程序可以存储NULL,那么您最终还是必须检查null与空字符串.然而,一个简单的`if not value`将在Python中检查两者. (8认同)
  • 这不是一个好习惯,它是早期引入的一个约定,因为它不需要在模板中处理`None`而不必将空白表单字段清理成`None`.这是快速完成任务的捷径,但我们现在应该将其视为一种好的做法,因为懒惰或缺乏时间让我们成为这种"实践".这就是我们现在有2个字段属性处理这些东西的原因. (3认同)