首页 > 其他分享 >关于视图类和序列化类的知识

关于视图类和序列化类的知识

时间:2023-07-26 20:33:07浏览次数:43  
标签:ser get 知识 request 视图 序列化 data serializer

1. 代码

class PayOrderView(GenericViewSet):
    serializer_class = PaySerializer
    def create(self,request, *args, **kwargs):
        ser = self.get_serializer(context={'request': request},data=request.data) 
        ser.is_vaild(raise_exception=True)
        ser.save()
        pay_url = ser.context.get('pay_url') 
        return APIResponse(msg='保存成功',pay_url=pay_url)

在上述代码中

ser = self.get_serializer(context={'request': request},data=request.data) # 实例化出对象 才会真正用到上面配置的序列化类
    ser.is_vaild(raise_exception=True) # 走到is_vaild开始运行序列化类

2.配置序列化类的问题

并不是说继承了GenericAPIView 就一定要配置 serializer_class 和 queryset 属性,有需要才需要配

但是如果继承了ListModelmixin,就不需要写了,因为ListModelmixin类里面带了这两步

3.get_serializer

先列举出上述视图类序列化类的属性中可以有的三种写法 

# 1 
PaySerializer(context={'request': request},data=request.data)
# 2
self.serializer_class(context={'request': request},data=request.data)
# 3 这是比较高级的写法
self.get_serializer(context={'request': request},data=request.data)

 get_serializer 是 GenericViewSet 中有的方法

当我们需要改变不同的序列化类配置,我们只需要重写get_serializer 方法,这样的写法更加灵活

 

标签:ser,get,知识,request,视图,序列化,data,serializer
From: https://www.cnblogs.com/abc683871/p/17583467.html

相关文章

  • 硬件知识
    常用的显卡接口DP的传输速度最快重要参数天梯图......
  • mongodb创建了视图后会生成system.views,但是没有权限查询
    环境:OS:Centos7mongodb:5.0.19mongodb创建了视图后会生成system.views,但是没有权限查询myrepl:PRIMARY>db.system.views.find()Error:error:{"ok":0,"errmsg":"notauthorizedondb_pushmsgtoexecutecommand{find:\"sy......
  • TypeScript小知识:遍历enum (暂时记录)
    enumBlockPrefab{  BLOCK2=0,  BLOCK4,  BLOCK8,  BLOCK16,  BLOCK32,  BLOCK64,  BLOCK128,  BLOCK256,  BLOCK512,  BLOCK1024,  BLOCK2048}letnum=BlockPrefab.BLOCK128;letsmth=BlockPrefab[num];let......
  • SQL Server锁知识
    SQLServer锁LOCK 数据库引擎存储过程SETTRANSACTIONISOLATIONLEVEL在多用户的情况下不免要进行并发控制。微软提供了锁机制。这里锁分为两个部分,一个是锁的范围(行锁、页面锁、表锁),另一个是锁的粒度(共享锁、持有锁等)服务器带宽,服务器费用,开发人员费用,运维费用,别的没有......
  • microstation打开obj文件之后,默认是哪种视图?
     Obj其实一种mesh文件。。一整个obj是一整个mesh吗?能不能把不同的mesh进行分组,赋上名字,属性等信息。。这个信息存贮在.mtl文件里?还是存储在Obj里?......
  • 【面试必背知识】Java 中常见的异常有哪些?
    ......
  • docker小知识
    文件拷贝用于在主机与容器之间拷贝文件或目录#从容器中拷贝至主机#dockercp<container>:<容器目录><主机目录>dockercpubuntu:/data/c/tmp#从主机拷贝至容器dockercp<主机目录><container>:/<容器目录>dockercp/c/tmpubuntu:/data容器中联通主机的docke......
  • Android应用程序主要组件知识小结
    Android系统中通过几个主要的组件以其灵活的组织方式在方便了开发者的同时,也不失其炫丽的效果,实在是值得我不断深入了解和学习,下面的图作为近一段时间对Android组件知识的一个小结,难免有遗漏或错误之处,敬请各位不吝赐教。我觉得深刻理解和掌握这几个组件的使用方法以及相互关系,就......
  • 算法学习--并查集相关知识及例题
    一、并查集的定义二、基本操作1、初始化一开始,每个元素都是独立的集合#include<iostream>usingnamespacestd;constintmaxN=1000;intfather[maxN];intmain(){for(inti=1;i<=maxN;i++){father[i]=i;}return0;}2、查找递推版本://返......
  • JAVA 序列化(创建可复用的 Java 对象)
    保存(持久化)对象及其状态到内存或者磁盘Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将......