【发布时间】:2020-03-12 16:50:41
【问题描述】:
目前,我想在 django 中使用 REST API 呈现数据,但出现以下错误:
parse() missing 1 required positional argument: 'stream'.
有什么解决办法吗?
@csrf_exempt
def article_key_list(request,pk):
try:
article = Article.objects.get(pk=pk)
except Article.DoesNotExist:
return HttpResponse(status=404)
if request.method == 'GET':
serial = Article_serializer(article)
return JsonResponse(serial.data)
elif request.method == 'PUT':
data = JSONParser.parse(request)
serial = Article_serializer(data=data)
if serial.is_valid():
serial.save()
return JsonResponse(serial.data,status=201)
return JsonResponse(serial.errors,status=404)
elif request.method == 'DELETE':
article.delete()
return HttpResponse(status=204)
【问题讨论】:
-
你能澄清你的问题吗?
-
请参阅django-rest-framework.org/api-guide/parsers 的解析器文档:“要实现自定义解析器,您应该重写 BaseParser,设置 .media_type 属性,并实现 .parse(self, stream, media_type, parser_context) 方法. 该方法应返回将用于填充 request.data 属性的数据。传递给 .parse() 的参数是:..."
标签: python-3.x django-rest-framework django-views