首页 > 其他分享 >drf高级之——定制返回字段

drf高级之——定制返回字段

时间:2023-12-21 15:00:16浏览次数:35  
标签:返回 city name self detail publish 定制 序列化 drf

方案一:在表模型(models)中写,在序列化类中映射

模型层书写:

def publish_detail(self):
    return {'name': self.publish.name, 'city': self.publish.city}

 

序列化类(serializer)中书写:

publish_detail = serializers.DictField(read_only=True)

 

前端打印:

"publish_detail": {
    "name": "北京出版社",
    "city": "北京"
    }

 

方案二:在序列化类中写SerializerMethodField方法,必须配合一个方法 get_字段名

序列化类中书写:

publish_detail = serializers.SerializerMethodField(read_only=True)
def get_publish_detail(self, obj):
    return {'name': obj.publish.name, 'city': obj.publish.city}    

 

前端打印:

"publish_detail": {
    "name": "北京出版社",
    "city": "北京"
    }

 

标签:返回,city,name,self,detail,publish,定制,序列化,drf
From: https://www.cnblogs.com/wellplayed/p/17919061.html

相关文章

  • 解决先异步调用一个接口,再根据返回值继续循环异步,然后再同步的场景.then的连续调用
    场景描述:人员select下拉框为分页只查20个数据下拉(真实数据可能下拉有大几千),但是编辑页进来的id不在这20个数据下拉之内,所以显示的就是id值数组(因为是多选下拉框)解决:编辑回显方法内写getUserSecList(data.collaboratorVoList);然后先调人员20个下拉,调完后,根据传参的编辑i......
  • vue中下载--后端返回的文档流
     实现后端返回的文档流,点击下载<divclass="prom-add"@click="downLoad"><iclass="el-icon-download"></i>下载</div>importrequestfrom'@/router/axios'//下载asyncdownLoad(){letparams={......
  • drf之序列化类
    序列化类介绍1序列化qs对象,单个对象做序列化给前端2反序列化数据校验:前端传入数据---》校验数据是否合法3反序列化---》前端传入数据,存到数据库中#因为咱么在写接口时,需要序列化,需要反序列化,而且反序列化的过程中要做数据校验---》drf直接提供了固定的写法,只要按照固......
  • drf
    Web开发模式前后端混合开发模式:前端写模板,后端处理完数据再渲染后再传给前端展示效果前后端分离开发模式:前端发送请求把数据传给后端,后端查询数据处理完以json格式返回给前端,前端渲染完展示页面API接口API四大特点#api接口:通过网络,规定了前后台信息交互规则的url链......
  • drf之APIView分析与Request分析
    一、APIView执行流程分析1.1基于APIView+JsonResponse编写接口#原来基于django原生的View编写接口#drf提供给咱们的一个类,以后使用drf写视图类,都是继承这个类及其子类,APIView本身就是继承了Django原生的ViewclassBookView(APIView):defget(self,request):......
  • 2023-12-20:用go语言,给定一个数组arr,长度为n,在其中要选两个不相交的子数组。 两个子数
    2023-12-20:用go语言,给定一个数组arr,长度为n,在其中要选两个不相交的子数组。两个子数组的累加和都要是T,返回所有满足情况中,两个子数组长度之和最小是多少?如果没有有效方法,返回-1。正式:2<=n<=10^60<=arr[i]<=100001<=T<=10^8扩展:2<=n<=10^6-10000<=arr[i]<=1......
  • 2023-12-20:用go语言,给定一个数组arr,长度为n,在其中要选两个不相交的子数组。 两个子数
    2023-12-20:用go语言,给定一个数组arr,长度为n,在其中要选两个不相交的子数组。两个子数组的累加和都要是T,返回所有满足情况中,两个子数组长度之和最小是多少?如果没有有效方法,返回-1。正式:2<=n<=10^60<=arr[i]<=100001<=T<=10^8扩展:2<=n<=10^6-10000<=a......
  • Task基础-创建Task,Task传参,获取Task返回值
    Task基础-创建Task,Task传参,获取Task返回值Task基础介绍Task的创建获取Task的执行结果 补充细节1、Task基础介绍Task类是TaskProgrammingLibrary(TPL)中最核心的一个类,下面我将会像大家展示如何使用一些方法来创建不同类型的Task,取消Task,等待Task执行完成,获取Task执行......
  • drf入门到精通 day3
    APIView执行流程分析1在路由中:path('books/',views.BookView.as_view()),请求来了#2先看as_view()---->APIView的as_view---》as_view执行结果跟之前一样,去除了csrf认证@classmethoddefas_view(cls,**initkwargs):view=super().as_view(**initkwa......
  • AR眼镜|5G联发科AR智能眼镜开发|AR眼镜定制_MTK解决方案
    AR眼镜作为一种创新的技术产品,为用户提供了身临其境的增强现实体验。它能够通过360度全方位展示产品的外观、结构和细节,使销售人员无需携带产品,用户也无需到店即可进行演示和体验。此外,AR眼镜还可以应用于远程协作解决方案,随时随地进行协同工作,对员工和客户进行培训和指导,实现......