zoukankan      html  css  js  c++  java
  • django字段设置null和blank的区别

    null

    这个选项跟数据库有关。

    null=True的话,数据库中该字段是NULL,即允许空值;null=False(默认)的话,数据库中该字段是NOT NULL,即不允许空值。

    blank

    这个选项和数据验证(表单验证等)有关。

    blank=False(默认)的话,字段没被赋值则会抛错;blank=True则不会。

    CharField和TextField

    CharField和TextField如果没有赋值的话,会被保存成空字符串而不是NULL。

    其他字段,例如IntegerField、DateField,没被赋值则会被保存成NULL。

    几种情况

    null=False, blank=False:其实null不用设置,因为blank的判定在前,已经保证了值不为空。但是如果数据库会被其他应用操作,null的设置还是有意义的。

    CharField(null=False):null不用设置,因为CharField默认是空字符串。

    IntegerFiled(blank=True):如果该字段没有被赋值,数据验证时可以通过blank=True,但是执行SQL的时候,会因为该字段是NOT NULL而出错。

    参考链接:

    https://docs.djangoproject.com/en/1.8/ref/models/fields/#null

    https://code.djangoproject.com/wiki/NewbieMistakes#IntegerNULLS

    http://stackoverflow.com/questions/8609192/differentiate-null-true-blank-true-in-django

  • 相关阅读:
    [转]跨语言通信方案比较
    C#三种定时器
    Java优化技巧
    websocket初探
    [转]远远走来一个绿茶婊
    赠与今年的大学毕业生-----------胡适
    HDU3068 回文串 Manacher算法
    OpenCV安装与配置
    tkinter事件机制
    哈夫曼压缩
  • 原文地址:https://www.cnblogs.com/hiddenfox/p/django-null-blank.html
Copyright © 2011-2022 走看看