Django模型字段属性null、blank、default的区别及如何正确使用

blank

默认为 False 。

如果 True ,则在admin站点管理中该字段允许为空(即可选字段)。

 

null:

默认为 False 。

如果 True, Django允许数据库该字段存储为空,空值用 NULL表示 。

注意:

在 CharField 和 TextField 之类的基于字符串的字段上,除非有一个很好的原因,否则 。如果基于字符串的字段具有 null = True ,那意味着它对于“无数据”有两个可能的值:NULL和空字符串。在大多数情况下,对“无数据”有两个可能的值是多余的:Django约定是使用空字符串,而不是 NULL 。即在基于字符串的字段上使用null=True,数据库只会存空字符串而不是null。


default:

字段的默认值。这可以是值或可调用对象。

这个默认值只是在ORM层面上起作用:

1、比如User.objects.create()不设置该字段的值时,创建对象时就会取default值。

2、或者在makemigrations数据库迁移时,将null=True字段修改为null=False,那么你必须设置default属性。以便数据库能够处理已经保存值为null的数据。

你单单只用sql语句创建对象时,该默认值无效。

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值