Django Rest Framework + Postman + ошибка синтаксического анализа JSON

Я создал 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)"

Просмотр почтальона


person Sadman Sobhan    schedule 06.05.2018    source источник
comment
В вашем почтальоне выберите raw вместо form-data, а затем выберите Json(application/json) в качестве типа ввода и проверьте, работает ли он.   -  person Navid777    schedule 06.05.2018
comment
Спасибо, это работает. Но можно ли публиковать данные по форме-данным?   -  person Sadman Sobhan    schedule 06.05.2018


Ответы (1)


Проблема в том, что вы использовали form-data в качестве ввода, вместо этого вы должны использовать application/json.

однако вы можете исправить файл настроек вашего проекта, чтобы он также принимал данные формы. Вам нужно добавить FormParser к вашему DEFAULT_PARSER_CLASSES в вашем проекте settings.py. Это должно выглядеть так:

REST_FRAMEWORK = {
    'DEFAULT_PARSER_CLASSES': (
        'rest_framework.parsers.JSONParser',
        'rest_framework.parsers.FormParser',
    )
}
person Navid777    schedule 06.05.2018
comment
Я пробовал это раньше. это создает проблему для создания токена JWT. Выбрасывает "detail": "Unsupported media type \"multipart/form-data; boundary=----WebKitFormBoundary73BA8CafGxDW9ARJ\" in request." - person Sadman Sobhan; 06.05.2018
comment
вы отправляете файлы в этом запросе? - person Navid777; 06.05.2018
comment
Нет, я отправил имя пользователя и пароль от form-data - person Sadman Sobhan; 06.05.2018
comment
Не могли бы вы прислать скриншот этого запроса и его ошибки? - person Navid777; 06.05.2018
comment
Какую библиотеку вы используете для создания токенов JWT? Кажется, что он принимает только входные данные Json. - person Navid777; 06.05.2018
comment
На изображении видно, что у вас есть что-то в вашем headers в почтальоне. Что это? Это контент-тип? - person Navid777; 06.05.2018
comment
нет это авторизация - person Sadman Sobhan; 06.05.2018