使用3深度序列化器创建对象

时间:2015-04-17 13:40:05

标签: django django-rest-framework

我遇到了django rest框架的问题,我在其中设置了以下序列化程序:

class PackageSerializer(serializers.ModelSerializer):
    class Meta:
        model = Package


class CommandSerializer(serializers.ModelSerializer):
    class Meta:
        model = Command


class GroupSerializer(serializers.ModelSerializer):
    class Meta:
        model = Group


class UserSerializer(serializers.ModelSerializer):
    groups = GroupSerializer(many=True)

class NodeSerializer(serializers.ModelSerializer):
    users = UserSerializer(many=True, required=False)
    packages = PackageSerializer(many=True, required=False)
    commands = CommandSerializer(many=True, required=False)

class SimulationSerializer(serializers.ModelSerializer):
    nodes = NodeSerializer(many=True)

我遇到的问题是,如果我将下面的JSON发布到相应的API,我会得到响应"期望一个字典,但是得到了unicode。"。

{
  "nodes": [
    {
      "os": "Ubuntu",
      "cpu_count": 1,
      "memory_amount": 256,
      "name": "Node1",
      "packages": [
        {
          "name": "npm"
        },
        {
          "name": "bower"
        }
      ]
    }
  ]
}

我已经使用rest-framework API在python中为此功能编写了测试,但是由于某种原因,包对象数组被转换为字符串,而不是对象数组。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

事实证明我只是一个白痴,输出来自我输出到控制台的变量,同时我发布了不同的数据。