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

如何使用Django Serializer实现单模型的嵌套序列化输出?

方案1:实现基础嵌套返回格式

无需修改现有模型和视图代码,仅需调整ProductSerializer的定义,通过SerializerMethodField自定义嵌套的price字段即可:

from rest_framework import serializers
from .models import Product

class ProductSerializer(serializers.ModelSerializer):
    price = serializers.SerializerMethodField()

    class Meta:
        model = Product
        fields = ["product", "price"]
    
    def get_price(self, obj):
        # 直接从当前Product实例提取字段组装为嵌套字典
        return {
            "price_1": obj.price_1,
            "price_2": obj.price_2
        }

修改后直接调用原有视图即可得到你需要的第一种返回格式。

方案2:实现数字key的优化返回格式

仅需修改get_price方法的返回结构即可:

def get_price(self, obj):
    return {
        1: obj.price_1,
        2: obj.price_2
    }

注意:JSON规范中对象的键仅支持字符串类型,最终返回时数字key会被自动转为字符串格式的"1"、"2",不影响前端正常读取使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 04:45:03