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

  • 相关阅读:
    13-计算属性和侦听器
    12-指令系统介绍
    11-vue的使用
    10-vue的介绍
    09-babel
    08-webpack的介绍
    07-nodejs中npm的使用
    06-Nodejs介绍
    05-面向对象
    Docker结合Jenkins构建持续集成环境
  • 原文地址:https://www.cnblogs.com/hiddenfox/p/django-null-blank.html
Copyright © 2011-2022 走看看