Django models中的null和blank的区别】的更多相关文章

blank在数据库上存储的是一个空字符串 如需设置字段可以为空:blank=True,默认为blank=False(字段必须填写); null在数据库上表现为NULL,而不是一个空字符串 如需设置字段可以为空:null=True,默认为null=False(字段必须填写); 注意: 日期类型(DateField.TimeField.DateTimeField)和数字类型(IntegerField.DecimalField.FloatField)不能接受空字符串,因此这两种类型类型的字段如果要设置…
Django models中关于blank与null的补充说明 建立一个简易Model class Person(models.Model): GENDER_CHOICES=( (1,'Male'), (2,'Female'), ) name=models.CharField(max_length=30,unique=True,verbose_name='姓 名') birthday=models.DateField(blank=True,null=True) gender=models.Int…
Django models中的meta选项 通过一个内嵌类 "class Meta" 给你的 model 定义元数据, 类似下面这样: class Foo(models.Model): bar = models.CharField(maxlength=30) class Meta: # ... Model 元数据就是 "不是一个字段的任何数据" -- 比如排序选项, admin 选项等等. 下面是所有可能用到的 Meta 选项. 没有一个选项是必需的. 是否添加 c…
JAVA中String = null 与 String = ""的区别 笔者今天在Debug的时候发现的NPE(NullPointerException),辛辛苦苦地调试了半天,终于看出了究竟 源头就是出在了对String为null的调用上,这时会抛出NullPointerException 首先,笔者在前面的博客中提到了对字符串进行比较的方法.传送门,通过先阅读这篇文章,可能对以后的理解更有帮助. 下面介绍几个比较常见的错误写法 if(str == "") { /…
blank 设置为 True 时,字段可以为空 设置为 False 时,字段是必须填写的 默认为 False null 设置为 True 时,数据库的字段允许为NULL,而且表单中的空值将会被存储为NULL 设置为 False 时,数据库的字段不允许为NULL 默认为 False 概括来说: blank只是在表单验证的时候会检测你是否可以为空 null则是在表单数据为空值时会向数据库插入NULL 但是由于各数据类型的特点,使用效果也不相同: Field 类型 设置null=True 设置blan…
null 这个选项跟数据库有关. null=True的话,数据库中该字段是NULL,即允许空值:null=False(默认)的话,数据库中该字段是NOT NULL,即不允许空值. blank 这个选项和数据验证(表单验证等)有关. blank=False(默认)的话,字段没被赋值则会抛错:blank=True则不会. CharField和TextField CharField和TextField如果没有赋值的话,会被保存成空字符串而不是NULL. 其他字段,例如IntegerField.Date…
先看个例子: class D(object): def __init__(self): pass def __str__(self): return "__str__" def __repr__(self): return "__repr__" b = D() print(b.__repr__()) print(b) out: __repr__ __str__ 内建函数str()和repr() (representation,表达,表示)或反引号操作符(``)可以方…
跨表操作在数据库操作非常常用,虽然其会降低读取数据的性能,但是它能节约数据在硬盘中的占用,优化数据表的结构和各自之间的关系. 在sql中,一般跨表需要用到 join 关键字 select * from table1 left join table2 on table1.id = table2.id 那到了Django框架中,又是如何实现跨表的呢? #创建一个类 class userinfo(Models): user_name = models.charField(max_length=32)…
如果你导入数据过多,导入时出错了,或者你手动停止了,导入了一部分,还有一部分没有导入.或者你再次运行上面的命令,你会发现数据重复了,怎么办呢? django.db.models 中还有一个函数叫 get_or_create() 有就获取过来,没有就创建,用它可以避免重复,但是速度可以会慢些,因为要先尝试获取,看看有没有 只要把上面的 Blog.objects.create(title=title,content=content) 换成下面的就不会重复导入数据了 Blog.objects.get_…
CHOICES常用做单选属性,下面举例在django models中人物性别的用法: 我们先定义一个模型,名字为Students ,这个Students 包含了名字和性别两个字段,代码如下: from django.db import models class Students(models.Model): GENDER_CHOICES = ( (u'M', u'Male'), (u'F', u'Female'), ) name = models.CharField(max_length=60)…