序列化类:
-Serializer
-写字段,字段名要跟表的字段对应,想不对应(source可以修改),有属性,read_only,max_len...
-SerializerMethodField必须配套一个get_字段名,返回什么,前台就看到什么
-ModelSerializer
-class Meta:
表对应
取出的字段(__all__,列表)
排除的字段(用的很少)
extra_kwargs会给字段的属性
-重写某个字段
password=serializers.SerializerMethodField()
def get_password(self,instance):
return "***"
-校验:字段自己的校验,局部钩子,全局钩子
-只要序列化类的对象执行了is_valiad(),这些钩子都会走,可以再钩子里写逻辑
-在表模型(model)中写方法,可以在上面取出的字段中直接写,不参与反序列化
-序列化多条(many=True):本质,ListSerializer内部套了一个个的serializer对象
-重写ListSerializer,让序列化对象和自己写的ListSerializer对应上(了解)
-序列化类(instance,data,many,context={requtst:request})
-视图函数中给序列化对象传递数据,使用context,传回来,放进去直接使用序列化对象.context.get()