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

  • 相关阅读:
    教务管理及教材订购系统设计文档
    Lambda Expression
    Domain logic approaches
    load data local to table
    Spring AOP Capabilities and Goals
    CDI Features
    java设计模式
    Spring RESTful
    ecipse 新建Android test project error
    Excel数据导出
  • 原文地址:https://www.cnblogs.com/hiddenfox/p/django-null-blank.html
Copyright © 2011-2022 走看看