You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django/DRF返回错误缩略图URL问题排查求助

问题原因与解决方案:DRF返回缩略图URL与原图一致

问题出在你的serializers.py配置里:

你给thumbnail字段设置了source='image',这会强制序列化器读取image字段的内容作为thumbnail的返回值,完全忽略了模型中thumbnail字段实际存储的缩略图路径。

解决方案

删掉thumbnail字段定义里的source='image'参数,让序列化器直接使用模型的thumbnail字段:

修改后的serializers.py代码:

class PostSerializer(serializers.ModelSerializer):
    thumbnail = serializers.ImageField(required=False)
    
    class Meta:
        model = Post
        fields = ('id', 'image', 'pub_date', 'imageDescription', 'poster', 'thumbnail')
    
    def to_representation(self, instance):
        self.fields['poster'] =  PosterSerializer(read_only=True)
        return super(PostSerializer, self).to_representation(instance)

为什么这样有效

你的模型中thumbnail是独立的ImageField,数据库和文件系统里的缩略图路径都是正确的。去掉source='image'后,序列化器会正确读取模型中thumbnail字段存储的resize/image_thumb.jpg路径,结合MEDIA_URL生成正确的缩略图URL,返回的JSON里thumbnail就会显示为http://127.0.0.1:8000/media/resize/image_thumb.jpg。

内容的提问来源于stack exchange,提问作者artificial_nocturne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 04:10:25