DjangoRestFramework序列化完整图片url

DjangoRestFramework序列化完整图片urlDRF图片默认序列化目录格式一般为media/xxx.png,但这不是url,没法直接访问,在前端还需要进行一次字符串拼接,十分麻烦。serializer=CategorySerializer(category)returnResponse(serializer.data,status=status.HTTP_200_OK)如上面的代码,此时如果CategorySerializ…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

DRF图片默认序列化目录格式一般为media/xxx.png,但这不是url,没法直接访问,在前端还需要进行一次字符串拼接,十分麻烦。

serializer = CategorySerializer(category)
return Response(serializer.data, status=status.HTTP_200_OK)

如上面的代码,此时如果CategorySerializer中有图片资源,那么序列化出来就会是这种形式:media/web/6/img/10b5319a.jpg

若要改成url格式的话,需做如下修改:

serializer = CategorySerializer(category, context={'request': request})
return Response(serializer.data, status=status.HTTP_200_OK)

增加一个context,其中的request值就是该次请求的request,如果使用APIView的方式,那么只需要在方法中加入request参数就可以获取到了,如下:

class GetCategoryView(APIView):
    def get(self, request):
        category = Category.objects.all().first()
        if category:
            serializer = CategorySerializer(category, context={'request': request})
            return Response(serializer.data, status=status.HTTP_200_OK)

这样返回的图片地址就是url的格式了

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190776.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux中GUI图形nmtui问题及网卡问题

    1.网络管理器未运行,如下图:解决:在systemd里面,可以直接使用systemctl进行管理启动:systemctlstartNetworkManger一般这一句是不行的,可能你设置了开机不允许启动NetworkManager,你可以试试以下命令:开机启动:chkconfigNetworkManageron启动网络管理器:serviceNetworkMan…

    2022年4月7日
    164
  • 简单易学的机器学习算法——梯度提升决策树GBDT「建议收藏」

    简单易学的机器学习算法——梯度提升决策树GBDT「建议收藏」梯度提升决策树(GradientBoostingDecisionTree,GBDT)算法是近年来被提及比较多的一个算法,这主要得益于其算法的性能,以及该算法在各类数据挖掘以及机器学习比赛中的卓越表现,有很多人对GBDT算法进行了开源代码的开发,比较火的是陈天奇的XGBoost和微软的LightGBM。一、监督学习1、监督学习的主要任务监督学习是机器学习算法中重要的一种,对于监督学习,假设有mm…

    2022年10月12日
    1
  • C++路标设置「建议收藏」

    C++路标设置「建议收藏」B市和T市之间有一条长长的高速公路,这条公路的某些地方设有路标,但是大家都感觉路标设得太少了,相邻两个路标之间往往隔着相当长的一段距离。为了便于研究这个问题,我们把公路上相邻路标的最大距离定义为该公路的“空旷指数”。现在政府决定在公路上增设一些路标,使得公路的“空旷指数”最小。他们请求你设计一个程序计算能达到的最小值是多少。请注意,公路的起点和终点保证已设有路标,公路的长度为整数,并且原有路标和新设路标都必须距起点整数个单位距离。输入格式:第1行包括三个数l(0<l≤1000,000,00

    2022年8月12日
    3
  • Python语言有哪些数据类型「建议收藏」

    Python语言有哪些数据类型「建议收藏」在Python中,能够直接处理的数据类型有以下几种:一、整数Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,…

    2022年5月28日
    29
  • python运维实战pdf_python运维实例.pdf[通俗易懂]

    python运维实战pdf_python运维实例.pdf[通俗易懂]python运维实例第一部分Part1基础篇■第1章系统基础信息模块详解■第2章业务服务监控详解■第3章定制业务质量报表详解■第4章Python与系统安全Chapter1第1章系统基础信息模块详解系统基础信息采集模块作为监控模块的重要组成部分,能够帮助运维人员了解当前系统的健康程度,同时也是衡量业务的服务质量的依据,比如系统资源吃紧,会直接影响业务的服务质…

    2022年7月12日
    13
  • 微信支付与支付宝钱包的竞争分析

    微信支付与支付宝钱包的竞争分析微信支付与支付宝钱包的竞争分析NO1:2013年8月,微信5.0上线,其中附加了一个功能叫做微信支付,当时的微信用户已经超过了4亿,活跃用户1.94亿,估计不少人在看微信支付同支付老大哥支付包的大战。说起微信支付和支付宝的大战,先来说说他们背景,微信支付是社交软件巨头腾讯公司旗下的微信中的附加功能,而支付宝是电商巨头阿里巴巴旗下的支付理财软件。两家都有超过2万的顶级互联网员工,兵强马壮…

    2022年5月14日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号