Django 使用3深度序列化程序创建对象
django rest framework遇到了一个问题,在这里我有以下序列化程序设置:Django 使用3深度序列化程序创建对象,django,django-rest-framework,Django,Django Rest Framework,django rest framework遇到了一个问题,在这里我有以下序列化程序设置: class PackageSerializer(serializers.ModelSerializer): class Meta: model = Package class CommandSerializer(serializers.ModelSerializer): class Meta: model = Command class GroupSe
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”
我已经使用rest框架API在python中编写了此功能的测试,测试通过了,但出于某种原因,包对象数组被转换为字符串,而不是对象数组
在此方面的任何帮助都将不胜感激 事实证明我只是个白痴,输出来自我输出到控制台的变量,同时我发布了不同的数据。你文章中的JSON看起来不错,但可能你试图发布的实际数据都用引号括起来:
u“{”nodes”…}
。在交互式python模式下使用type()
检查它。文章中的JSON是JSON.stringify()的输出,因为我正在将数据从角度前端发布到DRF API。
{
"nodes": [
{
"os": "Ubuntu",
"cpu_count": 1,
"memory_amount": 256,
"name": "Node1",
"packages": [
{
"name": "npm"
},
{
"name": "bower"
}
]
}
]
}