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

Creating objects using a 3 deep serializer

我遇到了 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)

我遇到的问题是,如果我 post 下面的 JSON 到适当的 API,我得到响应 "expected a dictionary, but got unicode.".

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

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

如有任何帮助,我们将不胜感激!

好吧,原来我只是个白痴,输出来自我输出到控制台的变量,同时我发布了不同的数据。