DRF图片路径问题的解决方法,网上爬取的图片放到ImageFiled自动带上域名

  • django把爬取的图片url放入到imageField字段中,通过序列化返回该字段数据会默认带上访问该接口的url,导致图片不显示,其实是序列化器帮你添加的


    问题图
def get_serializer_context(self):
    return {

                'request': self.request,

                'format': self.format_kwarg,

                'view': self

            }

  • 该方法是GenericAPIView类中的方法,继承它的类都会出现(ListAPIView,RetrieveAPIView...等等),返回imageFiled字段会前缀本机域名,在类中重写一下该方法就Ok了.
# 去掉self.request可以让图片没有本地域名的前缀
    def get_serializer_context(self):
        """
        Extra context provided to the serializer class.
        """
        return {
            'format': self.format_kwarg,
            'view': self
        }
解决后效果图
  • OK,显示正常,带域名的结果是在view中对模型类序列化的,DRF在序列化图片的时候 会检查上下文有没有request,如果有,就给图片加上域名
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Serializers 序列化器允许将诸如查询集和模型实例之类的复杂数据转换为原生 Python 数据类型,然后可...
    lkning阅读 1,078评论 0 1
  • Django&DRF重点内容大盘点 本文只是将学习过程中需要深刻记忆,在工作中常用的一些命令或者知识点进行一个罗列...
    小闫同学啊阅读 4,285评论 0 10
  • 基于类的视图的一个主要优点是它们允许你组合可重复使用的行为。 REST框架通过提供大量预构建视图来提供常用模式,从...
    YYL07阅读 687评论 0 0
  • JAVA序列化机制的深入研究 对象序列化的最主要的用处就是在传递,和保存对象(object)的时候,保证对象的完整...
    时待吾阅读 10,956评论 0 24
  • DRF框架中的英文单词 1.prefix /'prifɪks/前缀,我们在路由配置的时候经常看见这个单词。在fla...
    小闫同学啊阅读 592评论 0 3