DRF lazy Serializer

 1 class LazySerializer:
 2     def __init__(self, cls_name, **kwargs):
 3         self.cls_name = cls_name
 4         self.kwargs = kwargs
 5
 6     class empty:
 7         pass
 8
 9     def __call__(self, instance=None, data=empty, **kwargs) -> serializers.Serializer:
10         return type(self.cls_name, (serializers.Serializer,), self.kwargs)(instance=instance, data=data, **kwargs)
11
12
13 S = LazySerializer("PeopleSerializer", name=serializers.CharField(), age=serializers.IntegerField(min_value=1))
14 s = S(data={"name": "xiaoming", "age": 18})
15 s.is_valid()
16 print(s.data) # {‘name‘: ‘xiaoming‘, ‘age‘: 18}

原文地址:https://www.cnblogs.com/ywhyme/p/10475196.html

时间: 2024-11-04 15:57:47

DRF lazy Serializer的相关文章

DRF的Serializer和ModelSerializer

一般的Serializer要自己手动添加各个字段: class GoodsSerializer(serializers.Serializer): # 这里各个字段都会放到validate_data里 def update(self, instance, validated_data): pass def create(self, validated_data): return Goods.objects.create(**validated_data) name = serializers.Ch

DRF ---- 三流 Serializer(偏底层)

目录 三流:补充知识点 序列化家族 Serializer(偏底层) 1.instance 以及 data 参数 2. 序列化 自定义serializer 像 gender和 icon字段 序列化方法: 视图层 many 对象.data view.py 3.反序列化 自定义serializer validate_字段名 局部钩子 validate 全局钩子 补充 :validators 重写create方法 视图层 ser对象.is_valid() 参数: raise_exception=True

Serializers 序列化组件

为什么要用序列化组件 当我们做前后端分离的项目~~我们前后端交互一般都选择JSON数据格式,JSON是一个轻量级的数据交互格式. 那么我们给前端数据的时候都要转成json格式,那就需要对我们从数据库拿到的数据进行序列化. 接下来我们看下django序列化和rest_framework序列化的对比~~ Django的序列化方法 # 第一版 用values以及JsonResponse实现序列化(发现就简单的数据拿出来还这么费劲) class BookView(View): def get(self,

Serialzers 序列化组件

Serialzers 序列化组件 前言 当做前后端分离的项目时,JSON是一个轻量级的数据交互格式.所有我们给前端数据的时候都要转成json格式,那就需要对我们从数据库拿到数据进行序列化 Django的序列化方法 使用django,json转数据进行传输,(了解即可) class BooksView(View): def get(self, request): # 获取数据库中的queryset数据 book_list = Book.objects.values("id", "

django rest_framework Serializers 序列化组件

为什么要用序列化组件 当我们做前后端分离的项目~~我们前后端交互一般都选择JSON数据格式,JSON是一个轻量级的数据交互格式. 那么我们给前端数据的时候都要转成json格式,那就需要对我们从数据库拿到的数据进行序列化. 接下来我们看下django序列化和rest_framework序列化的对比~~ Django的序列化方法 class BooksView(View): def get(self, request): book_list = Book.objects.values("id&quo

python_restframework(序列化)

django自带的序列化工具serializers 三步骤 导入 from django.core import serializers 生成对象并传参 response = serializers.serialize('json', book_list) 第一个json是解析器,说明要解析成json格式的字符串, 第二个是queryset对象, 最后返回结果 return JsonResponse(response, safe=False) safe 为false说明不是正经的json格式,里

drf框架 - 序列化组件 | Serializer

序列化组件 知识点:Serializer(偏底层).ModelSerializer(重点).ListModelSerializer(辅助群改) 序列化与反序列化 序列化: 将对象序列化成字符串用户传输 反序列化: 将字符串反序列化成对象用于使用 drf的序列化与反序列化 序列化: 将Model类对象序列化成字符串用户传输 反序列化: 将字符串反序列化成Model对象用于使用 Serializer 序列化准备: 模型层: models.py class User(models.Model): SE

DRF框架之Serializer序列化器的序列化操作

在DRF框架中,有两种序列化器,一种是Serializer,另一种是ModelSerializer. 今天,我们就先来学习一下Serializer序列化器. 使用Serializer序列化器的开发步骤: 1. 定义Serializer序列化器 首先,我们要在子应用中,创建见一个serializers.py文件,用来编写Serializer序列化器代码. from rest_framework import serializers # 定义序列化器 class BookInfoSerializer

drf 核心 序列化组件Serializer

知识点: Serializer(偏底层).ModelSerialize(重点).ListModelSerializer(辅助群改) 一.Serializer 1.序列化准备: 模型层:models.py class User(models.Model): SEX_CHOICES = [ [0, '男'], [1, '女'], ] name = models.CharField(max_length=64) pwd = models.CharField(max_length=32) phone =