我希望能够让Django REST框架反序列化数据,这些数据可能会以下面略微不同的两种形式出现。我想我可以做到这一点覆盖NodeGroupSerializer类中的restore_fields方法,但感觉这是错误的。我不想这样做。我希望我在文档中遗漏了一些关于这种情况的内容,任何指针都表示赞赏。
模型
class NodeGroupSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = NodeGroup
depth = 3
class ServiceSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Service
class EnvironmentSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Environment
序列化:
{
"environment": {
"url": "http://localhost:8000/api/environments/1/",
"name": "Development",
},
"service": {
"url": "http://localhost:8000/api/services/144/",
"name": "testservice",
},
"url": "http://localhost:8000/api/nodegroups/1/",
"domain": "test.cloud.com",
"hieradata": ""
}
我希望能够在下面的表单中反序列化请求,其中可以通过我知道唯一的名称值查找环境和服务。我怎样才能让序列化程序类检查请求值并在需要时进行查找?
需要反序列化的其他表格:
{
"environment": "Development",
"service": "testservice",
"domain": "test.cloud.com",
"hieradata": ""
}