python - django 数据模型中 null=True 和 blank=True 有什么区别?
ringa_lee
ringa_lee 2017-04-17 13:42:23
[Python讨论组]
ringa_lee
ringa_lee

ringa_lee

全部回复(3)
阿神
  • null 是针对数据库而言,如果 null=True, 表示数据库的该字段可以为空。

  • blank 是针对表单的,如果 blank=True,表示你的表单填写该字段的时候可以不填,比如 admin 界面下增加 model 一条记录的时候。直观的看到就是该字段不是粗体

阿神

http://www.weiguda.com/blog/8/这个文章很详细~

PHPz

引用sof上的一个回答。

class Test(models.Model):
charNull = models.CharField(max_length=10, null=True)
charBlank = models.CharField(max_length=10, blank=True)
charNullBlank = models.CharField(max_length=10, null=True, blank=True)

intNull         = models.IntegerField(null=True)
intBlank        = models.IntegerField(blank=True)
intNullBlank    = models.IntegerField(null=True, blank=True)

dateNull        = models.DateTimeField(null=True)
dateBlank       = models.DateTimeField(blank=True)
dateNullBlank   = models.DateTimeField(null=True, blank=True)        

The database fields created for MySQL 5.6.x are :

CREATE TABLE test (
id INT(11) NOT NULL AUTO_INCREMENT,

 `charNull`      VARCHAR(10) NULL DEFAULT NULL,
 `charBlank`     VARCHAR(10) NOT  NULL,
 `charNullBlank` VARCHAR(10) NULL DEFAULT NULL,

 `intNull`       INT(11)     NULL DEFAULT NULL,
 `intBlank`      INT(11)     NOT  NULL,
 `intNullBlank`  INT(11)     NULL DEFAULT NULL,

 `dateNull`      DATETIME    NULL DEFAULT NULL,
 `dateBlank`     DATETIME    NOT  NULL,
 `dateNullBlank` DATETIME    NULL DEFAULT NULL

)

只是从数据库层面来说。

更详细的不同情参照文档。
https://docs.djangoproject.com/en/dev/ref/models/fields/#null

不知道是搜不到,还是懒得看英文。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号