【发布时间】:2016-08-21 06:37:20
【问题描述】:
我是 Django 和 Django REST 框架的新手。我有以下序列化程序类,我用它来上传文件以及其他信息。但是,当我使用上传的文件运行 API 端点时,结果是这样的:
HTTP 415 Unsupported Media Type
Allow: POST, OPTIONS
Content-Type: application/json
Vary: Accept
{
"detail": "Unsupported media type \"multipart/form-data; boundary=----WebKitFormBoundaryybZ07gjZAqvcsZw3\" in request."
}
我尝试通过谷歌搜索解决此问题,但无法找到解决方案,因此这是我的序列化程序和 API 视图。
序列化器:
class ExampleSerializer(serializers.Serializer):
example_id = serializers.IntegerField()
description = serializers.CharField(allow_blank=True)
example_file = serializers.FileField(allow_empty_file=True)
def create_requirement_line(self):
request = self.context['request']
requirement_line = ExampleService().example_method(
example_id=self.validated_data['example_id'],
description=self.validated_data['description'],
example_file=self.validated_data['example_file']
)
return requirement_line
查看:
class RequirementLineAPIView(BaseCreateAPIView):
serializer_class = ExampleSerializer
parser_classes = (FormParser,)
def post(self, request, format=None,*args, **kwargs):
serializer = self.get_serializer(data=request.data)
if serializer.is_valid():
try:
example_variable = serializer.example_method()
return Response(example_variable, status=status.HTTP_200_OK)
except ValidationError as e:
return Response(e.message, status=status.HTTP_400_BAD_REQUEST)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
【问题讨论】:
-
parser_classes = (FormParser,)行中的逗号是什么意思? -
我不确定,但如果我删除“逗号”,则
'type' object is not iterable正在发生。 @kpie -
你能发布更多你的代码吗?
-
你能具体点吗?因为这就是我的序列化程序类和 api 视图。 @kpie
-
你的类有 2 个变量,在提供的代码中都没有引用它们。只是让我有点好奇……
标签: python django rest django-rest-framework