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

Django REST序列化器优化:将图片字段改为URL列表输出

Django REST序列化器调整:将images字段转为纯URL列表

你需要把嵌套的ProductImage对象列表转换成仅包含图片URL的字符串数组,最简单的方式是使用Django REST Framework的SerializerMethodField来自定义images字段的输出,不用再依赖ProductImageSerializer了。

修改后的序列化器代码

直接调整ProductSerializer即可:

class ProductSerializer(serializers.ModelSerializer):
    # 用SerializerMethodField自定义images字段的输出
    images = serializers.SerializerMethodField()

    def get_images(self, obj):
        # 遍历当前Product关联的所有ProductImage,提取每个图片的完整URL
        return [image.image_addr.url for image in obj.images.all()]

    class Meta:
        model = Product
        fields = ('id', 'name', 'description', 'price', 'images')

原理说明

  • SerializerMethodField会调用对应的get_<field_name>方法(这里是get_images)来生成字段值
  • obj.images.all()获取当前Product对象关联的所有ProductImage实例(因为你在ProductImage模型里设置了related_name='images')
  • image.image_addr.url会自动返回图片的完整访问URL,和你之前序列化器输出的image_addr值完全一致

这样修改后,接口返回的images字段就会变成你想要的纯URL数组格式,不需要改动模型或视图代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:12:01