由于博客园不支持markdown,推荐下面的url访问
原创url: https://blog.csdn.net/weixin_42495873/article/details/89440437
- django把爬取的图片url放入到imageField字段中,通过序列化返回该字段数据会默认带*问该接口的url,导致图片不显示,其实是序列化器帮你添加的
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190421214459266.png)
```python
def get_serializer_context(self):
return {
'request': self.request,
'format': self.format_kwarg,
'view': self
}
```
- 该方法是GenericAPIView类中的方法,继承它的类都会出现(ListAPIView,RetrieveAPIView...等等),返回imageFiled字段会前缀本机域名,在类中重写一下该方法就Ok了.
```python
# 去掉self.request可以让图片没有本地域名的前缀
def get_serializer_context(self):
"""
Extra context provided to the serializer class.
"""
return {
'format': self.format_kwarg,
'view': self
}
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190421214224636.png)
- OK,显示正常,带域名的结果是在view中对模型类序列化的,DRF在序列化图片的时候 会检查上下文有没有request,如果有,就给图片加上域名