目录
序列化器字段
序列化中的字段可以根据用途分为三种:
-
既用于序列化,也用于反序列化
普通字段 -
只用于序列化 (读) (read_only)
外键字段 -
只用于反序列化 (写) (write_only)
外键字段
外键字段自定义序列化
由于普通字段比较简单,以下针对外键字段进行总结:
序列化:
模型表 ----> 序列化类 ----> 前端
自定义序列化通常使用于外键字段,因为这些字段无法直接跟数据关联,如果在序列化器中直接填写外键字段前端会出现如下现象:
自定义序列化是为了给前端返回json格式字符串,而想要自定义序列化有两种方法:
在模型类中写方法
- 在模型类中写方法
数据库查询到数据 ---> 执行模型类中方法 --返回值--> 序列化类中字段 --序列化-> 前端
如果模型类中方法返回一个字典 ,在序列化类中使用DictField序列化。
如果模型类中方法返回一个列表 ,在序列化类中使用ListField序列化。
在序列化类中写方法
- 在序列化类中写方法,配合SerializerMethodField字段
SerializerMethodField:
这是一个只读字段。
它通过调用附加到的序列化程序类上的方法来获取其值。
它可用于将任何类型的数据添加到对象的序列化表示中。
数据库查询到数据 ---> 执行SerializerMethodField() ---> 执行序列化类中方法 --返回值--> json.dumps --序列化-> 前端
反序列化
模型表 <---- 序列化类 <---- 前端
外键字段反序列化保存
模型表 <-- 序列化类中create、updata等方法-- 序列化类中字段 <--主键-- 前端