django yasg-swagger 文件上传自定义参数

在这里插入图片描述

class JobImportApiView(APIView):
    parser_classes = [MultiPartParser]
    manual_parameters = [
        openapi.Parameter(name='file',
                          in_=openapi.IN_FORM,
                          type=openapi.TYPE_FILE,
                          required=True,
                          description='上传文件'),
        openapi.Parameter(name='project_id',
                          in_=openapi.IN_FORM,
                          type=openapi.TYPE_NUMBER,
                          required=True,
                          description='项目id'),
    ]
    @swagger_auto_schema(manual_parameters=manual_parameters, operation_description='新增数据')
    @transaction.atomic
    def post(self, request, *args, **kwargs):
        # file_obj = request.data['file']
        project_id = request.POST.get('project_id')
       file_obj = request.FILES.get('file')
        user_id = request.user.id
        zip_dir = f"media/tmp/{project_id}/job/"
        zip_url = f"{zip_dir}/{user_id}.zip"
        if not os.path.isdir(zip_dir):
            os.makedirs(zip_dir)
        with open(zip_url, 'wb') as f:
            for chunk in file_obj.chunks():
                f.write(chunk)
        return JsonResponse(R().ok().data(zip_url))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值