Django Rest Framework + Postman + JSON 解析错误
Django Rest Framework + Postman + JSON parse error
我创建了一个 Django Api。我用 rest_framework.generics.CreateAPIView 到 post。它在默认浏览器中运行良好。但是当我使用 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)"
问题是您使用 form-data
作为输入,您应该改用 application/json
。
但是您也可以修复项目的设置文件以接受表单数据。您需要将 FormParser
添加到项目的 settings.py
中的 DEFAULT_PARSER_CLASSES
。它应该是这样的:
REST_FRAMEWORK = {
'DEFAULT_PARSER_CLASSES': (
'rest_framework.parsers.JSONParser',
'rest_framework.parsers.FormParser',
)
}
我创建了一个 Django Api。我用 rest_framework.generics.CreateAPIView 到 post。它在默认浏览器中运行良好。但是当我使用 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)"
问题是您使用 form-data
作为输入,您应该改用 application/json
。
但是您也可以修复项目的设置文件以接受表单数据。您需要将 FormParser
添加到项目的 settings.py
中的 DEFAULT_PARSER_CLASSES
。它应该是这样的:
REST_FRAMEWORK = {
'DEFAULT_PARSER_CLASSES': (
'rest_framework.parsers.JSONParser',
'rest_framework.parsers.FormParser',
)
}