-
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,如果有,就给图片加上域名
网友评论