客户端UI可以发送单个文件或多个文件。 当我的后端收到它时,我想检查它是单个还是多个文件。 如果它是单一的,我只是直接传递(这已经工作)。 但如果它是多个文件,我想首先压缩它,然后传递它。
我很难搞清楚Django Rest Framework在哪里进行验证。 我在Serializer和Views
中都尝试过class CTDWorkSerializer(serializers.ModelSerializer):
class Meta:
model = CTDWork
fields = ('wo_id', 'owner', 'created',
'purpose', 'work_type',
'reviewer', 'status', 'upload', 'download')
read_only_fields = ('download',)
def update(self, validated_data):
print "foo"
return validated_data
和
class CTDWorkDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = CTDWork.objects.all()
serializer_class = CTDWorkSerializer
permission_classes = (permissions.IsAuthenticated, IsCurrentUserOrAdmin)
parser_classes = (FormParser, MultiPartParser,)
def perform_update(self,serializer,format=None):
print "bar"
我正在考虑在视图中使用request.FILES.getlist(“files”),但服务器总是拒绝请求,然后才能在我的日志上打印一些内容。 任何想法,为什么会发生? Django在何时何地验证并拒绝http请求?感谢
答案 0 :(得分:0)
非常感谢Tony,我可以打印出最重要的内容
class CTDWorkDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = CTDWork.objects.all()
serializer_class = CTDWorkSerializer
permission_classes = (permissions.IsAuthenticated, IsCurrentUserOrAdmin)
parser_classes = (FormParser, MultiPartParser,)
def put(self, request, *args, **kwargs):
print request.data.get('upload')
return self.update(request, *args, **kwargs)