【发布时间】:2014-08-28 09:15:56
【问题描述】:
我希望能够让 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": ""
}
【问题讨论】:
标签: python django deserialization django-rest-framework