当使用Django中的DRF框架时,它提供了一个非常重要的功能是序列化器。例如,我们需要将前端json数据转换为模型,或者在返回数据转发数据时,然后将模型转换为JSON的过程称为序列化,并且将JSON数据转换为模型作为模型反分级
为了获取模型中的字段,序列化器中的字段应与模型类中的字段名称一致
从ret_framework.serializers.serializer模块继承的序列化器
例如,我们定义了书籍课程和英雄的序列化合物
书序器
英雄 - 类序列化器
min_value = none)DECIMALFIELDDECIMALFIELD(max_digits,decimal_places,coerce_to_string = none,max_value = nonemin_length = none,max_length = none,max_length = none)ditcefielddictfield(child)
max_length最大长度min_lenght最小长度允许_blank允许空trim_whitespace是否空白字符max_value max_value最小值min_value min_value最大参数:
read_only表示该字段仅用于序列化输出,默认falsewrite_only表示该字段仅用于派生输入,默认falsequred表示必须在派生派生时输入字段。,默认的falseValidators此字段使用验证设备错误_MESSAGES字典带有错误编号和错误消息。当使用HTML显示API页面时,显示的字段名称help_text用于HTML Display API Page.prompt Information Serialializer在REST_FRAMEWORK.SERIALIZERS.SERIALIZERS.MODELIALIAMER中继承;
目前,指示每个字段的序列化类型和选项参数,这为后续提供了验证行为
同样,请使用书籍和英雄来审理案件
书籍定义:
英雄定义
序列化对象的构造方法
序列化设备名称(instance = none,data =空,** kwary)
1:n书:英雄
关联的模型类别名称name_set作为字段名称,同时,您需要通过许多参数标记多个数据
N:1英雄:书籍
案件:
撤退分为两个步骤:
将序列化器用于深丁字汀,您需要在序列化之前对其进行验证。通过验证后,可以获取数据以将其保存为模型类对象。
在获得序列化数据之前,请验证IS_VALID方法,并将返回boolean值对或false;
验证失败返回false,此时您可以通过错误方法返回错误原因。
验证成功后,返回真实。目前,您可以通过价值方法获取数据;
根据定义的序列化器,验证了指定的类型。例如,日期类型必须是时间类型
字段选项
例如:
选项参数:
max_length = 10最大长度不超过10min_lenght = 1最小长度不小于1allow_blank。
语法格式:序列化器中的方法def validate_字段名称(self,value)
注意:参数值表示字段值
测试
检查多个字段
语法格式:def验证(self,attrs)
注意:参数attrs实际上是数据字典
测试:
自定义验证方法
测试
在序列化器中调用保存方法时,我们需要手动创建一个create()和update()方法
创建序列化对象时,您可以允许某些字段通过partial = true更新
仅在创建序列化对象时创建它时,将在传递数据数据时创建新数据。
在序列化器中定义创建方法
注意:参数**验证的_data实际上是传递的数据字典数据
测试
当创建序列化对象时介绍实例实例对象和数据数据时,它已更新数据
传递两个数据系统将自动调用更新方法,
注意:实例是要更新的实例对象。验证的_data是更新的数据