今天遇到一个问题:数据库
在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为空字符串,依然能提交成功。
总结以下:spa
一、serializer中没有加验证,因此remarks不传值时能够经过,切此时默认为null。这是null=True在起做用,null是和数据库相关的,当reamrks为空时,就会被存储为NULL。
二、blank = True是页面表单验证相关的,表示在页面当中对应的表单能够为空,能够不填任何内容。