【问题标题】:django rest framework deserialize by namedjango rest框架按名称反序列化
【发布时间】: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


    【解决方案1】:

    在您的视图中覆盖 get_serializer_classdocs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 2021-04-08
      • 2015-06-29
      • 2015-12-30
      • 2020-03-22
      • 2015-10-29
      • 2017-02-09
      相关资源
      最近更新 更多