【问题标题】:Django Rest Framework + Postman + JSON parse errorDjango Rest Framework + Postman + JSON 解析错误
【发布时间】:2018-10-16 08:08:39
【问题描述】:

我创建了一个 Django Api。我使用 rest_framework.generics.CreateAPIView 发布。它在默认浏览器中运行良好。但是当我使用 Postman 时,它会引发错误。

views.py

class AuthorCreateAPIView(CreateAPIView):
  queryset = Author.objects.all()
  serializer_class = AuthorCreateUpdateSerializer

serializers.py

class AuthorCreateUpdateSerializer(ModelSerializer):
  class Meta:
  model = Author
  fields = [
    'name',
    'biography',
  ]

错误"detail": "JSON parse error - Expecting value: line 1 column 1 (char 0)"

【问题讨论】:

  • 在你的邮递员中选择raw而不是form-data,然后选择Json(application/json)作为你的输入类型并检查它是否有效
  • 谢谢,它有效。但是可以通过表单数据发布数据吗?

标签: django python-3.x django-rest-framework postman jsonparser


【解决方案1】:

问题是您使用form-data 作为输入,您应该使用application/json

但是,您也可以修复项目的设置文件以接受表单数据。您需要在项目的settings.py 中将FormParser 添加到您的DEFAULT_PARSER_CLASSES。它应该是这样的:

REST_FRAMEWORK = {
    'DEFAULT_PARSER_CLASSES': (
        'rest_framework.parsers.JSONParser',
        'rest_framework.parsers.FormParser',
    )
}

【讨论】:

  • 我之前试过。它会产生生成 JWT 令牌的问题。它抛出"detail": "Unsupported media type \"multipart/form-data; boundary=----WebKitFormBoundary73BA8CafGxDW9ARJ\" in request."
  • 您是否在该请求中发送文件?
  • 不,我通过form-data发送了用户名和密码
  • 您能否发送该请求及其错误的屏幕截图?
  • 您使用什么库来创建 JWT 令牌?它似乎只接受 Json 输入。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-15
  • 2018-03-18
  • 2016-07-21
  • 2015-03-22
  • 2016-09-09
  • 1970-01-01
  • 2017-03-19
相关资源
最近更新 更多