【问题标题】:How to send multiple json objects to a django model serializer如何将多个 json 对象发送到 django 模型序列化器
【发布时间】:2020-10-21 12:03:24
【问题描述】:

这是我的模型序列化器

class Testmasterserializer(serializers.ModelSerializer):
    class Meta:
       model = Dime3d_testmaster
       fields = ('visitId','testId','testType','status')

我想发送多个 json 对象我该如何发送

[{
    "visitId": "wsTp6anrDBQE",
    "testId": "RVeaJn6n",
    "testType": "windlass",
    "status": "fine"
},
{
    "visitId": "wsTp6anrDBQE",
    "testId": "Sq3LxKsNDP",
    "testType": "windlass",
    "status": "fine"
}
]

像这样。我该怎么做。到底有没有?我不想使用嵌套序列化程序,因为像这样添加一个参数

["data" :{
    "visitId": "wsTp6anrDBQE",
    "testId": "RVeaJn6n",
    "testType": "windlass",
    "status": "fine"
},
{
    "visitId": "wsTp6anrDBQE",
    "testId": "Sq3LxKsNDP",
    "testType": "windlass",
    "status": "fine"
}
]

我不想要这个

【问题讨论】:

  • 而不是尝试在后端处理它,这将违背常见的 RESTful 和 DRF 设计模式,并且需要大量的编码工作以确保其正确运行。由于不明显,以后也很难维护。尝试使用来自客户端的多个 POST 请求分别发送对象。
  • tysm 我终于找到了解决办法!!

标签: django django-models django-rest-framework django-views django-serializer


【解决方案1】:

我得到了刚刚提出的解决方案

def create(self, request, *args, **kwargs):
    serializer = self.get_serializer(data=request.data, many=isinstance(request.data,list))
    serializer.is_valid(raise_exception=True)
    self.perform_create(serializer)
    headers = self.get_success_headers(serializer.data)
    return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)

在您的序列化视图下的 views.py 中

【讨论】:

    猜你喜欢
    • 2022-11-10
    • 2012-10-13
    • 1970-01-01
    • 2021-04-18
    • 2017-06-20
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多