Django数据库设计中字段为空的⽅式
今天在做数据库设计的时候,设计了如下User表,其中我把email和phone字段设置为允许为空:
1class User(models.Model):
2    username = models.CharField('⽤户名',max_length=50)
3    password = models.CharField('密码',max_length=255)
4    email = models.EmailField('邮箱',null=True)
5    phone = models.CharField('电话',max_length=11,null=True)
6
7    group = models.ManyToManyField(UserGroup,verbose_name='⽤户组')
8
9    create_date = models.DateTimeField('创建时间',auto_now_add=True)
10    update_date = models.DateTimeField('最近修改时间',auto_now=True)
但当我在使⽤Django后台管理添加数据时发现还是不能输⼊空字段,仍然需要输⼊内容。
查了资料才知道,在使⽤Django设计数据库表时,
如果设置null=True,则仅表⽰在数据库中该字段可以为空,但使⽤后台管理添加数据时仍然要需要输⼊值,因为Django⾃动做了数据验证不允许字段为空
如果想要在Django中也可以将字段保存为空值,则需要添加另⼀个参数:blank=True
概况来说就是:
null=True
  数据库中字段可以为空
django admin 自定义页面blank=True
  django的 Admin 中添加数据时可允许空值
因此,要想实现在Django 后台管理中添加空值,则应该如下设计表:
1class User(models.Model):
2    username = models.CharField('⽤户名',max_length=50)
3    password = models.CharField('密码',max_length=255)
4    email = models.EmailField('邮箱',null=True,blank=True)
5    phone = models.CharField('电话',max_length=11,null=True,blank=True)
6
7    group = models.ManyToManyField(UserGroup,verbose_name='⽤户组')
8
9    create_date = models.DateTimeField('创建时间',auto_now_add=True)
10    update_date = models.DateTimeField('最近修改时间',auto_now=True)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。