Django DRF:批量创建api的模式

Django DRF:批量创建api的模式,django,django-rest-framework,Django,Django Rest Framework,我正在使用django rest框架构建支持批量创建/更新的API。 在这些情况下,api将接受对象列表,如 [ {"foo":"bar"}, {"foo":"bar"} ] 我使用的代码允许批量API只是一个小的修改,可以添加选项multi=True,如果数据是一个列表,那么序列化程序就是这样。就像: class FooViewSet(views.ModelViewSet): def create(self, request, *args, **kwargs):

我正在使用django rest框架构建支持批量创建/更新的API。 在这些情况下,api将接受对象列表,如

[
    {"foo":"bar"},
    {"foo":"bar"}
]
我使用的代码允许批量API只是一个小的修改,可以添加选项multi=True,如果数据是一个列表,那么序列化程序就是这样。就像:

class FooViewSet(views.ModelViewSet):
    def create(self, request, *args, **kwargs):
        many = isinstance(request.data, list)
        if many:
            serializer = self.get_serializer(data=request.data, many=True)
            serializer.is_valid(raise_exception=True)
            self.perform_bulk_create(serializer)
        else:
            ................
我正在使用api生成文档。 但问题是生成的模式只检测单个模型的请求体。是否有任何配置使DRF schema generator知道它将接受列表类型

这是DRF生成的模式

{
  "post": {
    "operationId": "foos_create",
    "description": "",
    "parameters": [
      {
        "name": "data",
        "in": "body",
        "required": true,
        "schema": {
          "$ref": "#/definitions/Foo"
        }
      }
    ],
    "responses": {
      "201": {
        "description": "",
        "schema": {
          "$ref": "#/definitions/Foo"
        }
      }
    },
    "tags": [
      "foos"
    ]
  }
}
我的期望是模式将是数组类型的Foo定义


任何帮助都将不胜感激。谢谢您的时间。

我知道这是一篇非常古老的文章,但我也面临着类似的问题,作为DRF和python的noob,我花了一段时间才弄明白这一点。 我只需要添加一个简单的装饰。 仅供参考,我已用于批量更新

@method_decorator(name='perform_bulk_create', decorator=swagger_auto_schema(
    request_body=ContactSerializer(many=True),
    operation_description="post list of contacts"
))

“生成模式和模式生成器”是什么意思?@RedCricket很抱歉让您感到困惑。我的意思是DRF为API文档生成的模式(我使用的是Swagger)啊。你能发布一个问题的屏幕截图吗?嗨@RedCricket,我用招摇过市的json模式更新了我的问题。希望它会有用。对于所有的问题,我还是Django和DRF的新手。你在用:?