python - 在 Django Rest 框架中为图像返回完整的图像 URL
问题描述
我在返回的图像 url 中遇到问题,这是不正确的。
我的返回图片网址是
"/media/slider_image/image/slider_image_4ea48daf-477d-4f00-93cb-7ac87c6f4002.JPG",
但序列化程序预期的实际 URL 是
http://127.0.0.1:8000/media/slider_image/image/slider_image_4ea48daf-477d-4f00-93cb-7ac87c6f4002.JPG
这是我尝试过的代码片段。
class ListSliderSerializer(SliderSerializers):
images = serializers.SerializerMethodField('get_images')
def get_images(self, instance):
return [slider_image.image.url for slider_image in instance.slider_image.all()]
class Meta(SliderSerializers.Meta):
fields = (
'images',
'section',
'tag',
)
我应该返回什么
return [slider_image.image.url for slider_image in instance.slider_image.all()]
获取我的图片的完整网址?
解决方案
您可以使用request.build_absolute_uri(...)
--(doc)方法作为
class ListSliderSerializer(SliderSerializers):
images = serializers.SerializerMethodField('get_images')
def get_images(self, instance):
request = self.context["request"]
return [
request.build_absolute_uri(slider_image.image.url)
for slider_image in instance.slider_image.all()
]
class Meta(SliderSerializers.Meta):
fields = (
'images',
'section',
'tag',
)
另请注意,您必须将其作为上下文数据传递request
给序列化程序
推荐阅读
- ruby-on-rails - 如何在创建操作中调用 Select_tag
- components - 上层实体期待“输入”引脚,而下层实体正在使用“输出”引脚
- python - 如何在 docsify.js 上使用深色主题、翻译和搜索?
- angular - Angular/angularfire2 - 读取可观察的文档并将数据保存到对象。没有异步管道
- php - 电子邮件在本地主机和服务器上发送,但邮件未到达服务器
- python - Python:构建一种有效的算法来从任何网页中抓取项目
- php - 卷曲 OpenSSL 错误 141A318A tls_process_ske_dhe:dh 密钥太小
- react-native - 什么时候需要编写 Redux Persist Migration
- ldap - Atlassian(Jira、Confluence)LDAP 配置
- python - SyntaxError:使用带有 Selenium 和 Python 的 xpath 时出现无效语法错误