码迷,mamicode.com
首页 > 数据库 > 详细

Django数据库设计中字段为空的方式

时间:2016-09-16 12:56:00      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:

null=True
  数据库中字段可以为空
blank=True
  django的 Admin 中添加数据时可允许空值


原文:

今天在做数据库设计的时候,设计了如下User表,其中我把email和phone字段设置为允许为空:

技术分享
 1 class 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
  数据库中字段可以为空
blank=True
  django的 Admin 中添加数据时可允许空值
 
因此,要想实现在Django 后台管理中添加空值,则应该如下设计表:
技术分享
 1 class 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)
出自:http://www.cnblogs.com/MacoLee/p/5610989.html

Django数据库设计中字段为空的方式

标签:

原文地址:http://www.cnblogs.com/qile/p/5876203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!