0
我希望能夠讓Django REST框架反序列化可能以兩種略有不同的形式出現的數據,如下所述。我想我可以這樣做,重寫NodeGroupSerializer類中的restore_fields方法,但感覺這是錯誤的。我不想這樣做。我希望我已經在關於這種情況的文檔中漏掉了一些東西,任何指針都表示讚賞。django rest框架按名稱反序列化
模型
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": ""
}