欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Django null=True和blank=True的区别

程序员文章站 2023-08-30 19:54:59
今天遇到一个问题: 在restframework框架中开发,数据库了创建了一个model的属性如下所示: remarks = models.CharField(verbose_name=u"描述", max_length=500, null=True) remarks为非必传数据,所以在serial ......

今天遇到一个问题:

在restframework框架中开发,数据库了创建了一个model的属性如下所示:

    remarks = models.charfield(verbose_name=u"描述", max_length=500, null=true)
remarks为非必传数据,所以在serializer中没有加验证,当时觉得没什么问题,但在提交数据时remarks为空字符串,报错为‘验证失败,remarks不能为空’。但当remarks不传值时则没有报错。
后来经过一番查找搜索,发现是没有加blank=true的原因。
最终经过修改:
    remarks = models.charfield(verbose_name=u"描述", max_length=500, null=true, blank = true)

再次提交,即使remark为空字符串,依然能提交成功。
总结如下:

1、serializer中没有加验证,所以remarks不传值时可以通过,切此时默认为null。这是null=true在起作用,null是和数据库相关的,当reamrks为空时,就会被存储为null。
2、blank = true是页面表单验证相关的,表示在页面当中对应的表单可以为空,可以不填任何内容。