我正在使用Django 睡觉框架和AngularJs上传文件.我的视图文件如下所示:

class ProductList(APIView):
    authentication_classes = (authentication.TokenAuthentication,)
    def get(self,request):
        if request.user.is_authenticated(): 
            userCompanyId = request.user.get_profile().companyId
            products = Product.objects.filter(company = userCompanyId)
            serializer = ProductSerializer(products,many=True)
            return Response(serializer.data)

    def post(self,request):
        serializer = ProductSerializer(data=request.DATA, files=request.FILES)
        if serializer.is_valid():
            serializer.save()
            return Response(data=request.DATA)

由于POST方法的最后一行应该返回所有数据,我有几个问题:

  • 如何判断request.FILES中是否有任何内容?
  • 如何序列化文件字段?
  • 我应该如何使用解析器?

推荐答案

FileUploadParser吧,都在申请里了. 改用PUT方法,您将在文档中找到一个示例:)

class FileUploadView(views.APIView):
    parser_classes = (FileUploadParser,)

    def put(self, request, filename, format=None):
        file_obj = request.FILES['file']
        # do some stuff with uploaded file
        return Response(status=204)

Django相关问答推荐

Django www.example.com从常量列表中删除值

Django中的登录重定向

没有与给定查询匹配的监视列表

测试 - 两个类共享相同的登录代码,但它只能在一个类中工作

错误404除主要应用程序外,HTML页面无法渲染的其他应用程序

使用自定义的AuthBackend时,无法使用request.user.is_authenticated或@login_required修饰符

相同的字符串不同的翻译

防止 django 将_id附加到外键字段

在 Django 过滤器语句中,__exact 和等号 (=) 有什么区别?

在 django 中获取本地时区

django- nginx: [emerg] open() "/etc/nginx/proxy_params" 在 /etc/nginx/sites-enabled/myproject:11 中失败(2:没有这样的文件或目录)

is_valid() vs clean() Django 表单

Django:创建索引:非唯一,多列

PyMongo vs MongoEngine for Django

Django查询在哪里

这是验证 Django 模型字段的方法吗?

django:TypeError:'tuple'对象不可调用

如何在 Django 中执行批量插入?

Django 模型:delete() 未触发

Django 中的 Python 日志(log)记录