Почему django закрывает соединение раньше времени?
Вообще-то, Django никогда не обрабатывает запросы в одиночку. Перед ним еще стоят gunicorn/uwsgi/mod_wsgi и nginx или Apache. Кроме того, прямо в документации описаны ограничения на размер запроса.
Ну и еще бы неплохо приводить код и текст ошибки в таких вопросах.
В общем я нашёл ответ. Дело в том то Django начинает посылвать ответ до того как клиент успеет полностью отправить тело запроса. Видимо некотрые HTTP клиенты на это не расчитаны. Нужно просто обратиться к request.body, и дождаться пока оно всё загрузится и только после эжто начинать строчить ответ