1,反序列化-字段类型校验
-
目的: 能够使用字段类型对数据进行校验
-
操作流程:
-
1, 类视图(booktest/views.py)
-
#===========4,反序列化-字段类型校验=========== from booktest.serializers import BookSerializer #1,准备数据 book_dict = { "btitle":"金瓶x", "bpub_date":"1999-1-1", "bcomment":10, "bread":"哈哈" } #2,创建序列化器 serializer = BookSerializer(data=book_dict) #3,校验数据,如果传递raise_exception=True,报错之后有提示信息 # serializer.is_valid() serializer.is_valid(raise_exception=True)
-
-
注意点:
- serializer.is_valid() 可以校验数据是否符合,序列化器的要求
- 参数: raise_exception=True, 报错之后有提示信息
-
2,反序列化-字段选项校验
-
目的: 能够使用字段选项对数据进行校验
-
1, 类视图(booktest/views.py)
-
#===========5,反序列化-字段选项校验=========== from booktest.serializers import BookSerializer #1,准备数据 book_dict = { "btitle":"金瓶xx", "bpub_date":"1999-1-1", "bcomment":10, "bread":100 } #2,创建序列化器 serializer = BookSerializer(data=book_dict) #3,校验数据,如果传递raise_exception=True,报错之后有提示信息 # serializer.is_valid() serializer.is_valid(raise_exception=True)
-
2,序列化器
-
class BookSerializer(serializers.Serializer): .. btitle = serializers.CharField(max_length=20,min_length=3,label="名称") bpub_date = serializers.DateField(label="发布日期") bread = serializers.IntegerField(default=0,max_value=10000,min_value=0,label="阅读量")
-
-
3,反序列化-单字段校验
-
目的: 能够使用单字段,方法对数据进行校验
-
操作流程:
-
1, 序列化器
-
#1,定义书籍序列化器 class BookSerializer(serializers.Serializer): ... #4,单字段方法校验,对书籍的名字进行校验 def validate_btitle(self, value): """ :param value: 就是需要校验的btitle数据 :return: """ # print("value = %s"%value) #1,校验书籍名称 if "金瓶" not in value: raise serializers.ValidationError("书籍中不包含金瓶") #2,返回 return value
-
-
2, 类视图
-
#===========6,反序列化-单字段校验=========== from booktest.serializers import BookSerializer #1,准备数据 book_dict = { "btitle":"金瓶xx"
-
-