BadRequest не может вернуть JSON?

Я пытаюсь вернуть объект JSON вместе с кодом ошибки 400. Это правильно возвращает объект (например, {"email": ["A user with that email address already exists."]}:

return HttpResponse(json.dumps(dict(form.errors.items())))

Тогда как все эти просто возвращают нечитаемый (javascript) объект ([object Object]):

return BadRequest(json.dumps(dict(form.errors.items())))
return HttpResponseBadRequest(json.dumps(dict(form.errors.items())))
return BadRequest(json.dumps(dict(form.errors.items())), content_type='application/json')

Я пробовал несколько других способов отправки кода ошибки, но результаты были одинаковыми. Как мне получить читаемый объект вместе с кодом ошибки 400 Bad Request?

Наверное, самый простой способ - это JsonResponse [Django-doc] с status=400:

def my_view(request):
    # …
    return JsonResponse(dict(form.errors.items()), status=400)

это также позволяет отказаться от сериализации вручную.

Вернуться на верх