使用 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 编写了此功能的测试,它通过了,但由于某种原因,包对象数组被转换为字符串,而不是作为对象数组。
如有任何帮助,我们将不胜感激!
好吧,原来我只是个白痴,输出来自我输出到控制台的变量,同时我发布了不同的数据。
我遇到了 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 编写了此功能的测试,它通过了,但由于某种原因,包对象数组被转换为字符串,而不是作为对象数组。
如有任何帮助,我们将不胜感激!
好吧,原来我只是个白痴,输出来自我输出到控制台的变量,同时我发布了不同的数据。