используя django-rest-интерфейс с http положил - PullRequest
9 голосов
/ 01 февраля 2009

Я пытаюсь выяснить, как реализовать мой первый интерфейс RESTful, используя Django и django-rest-interface. У меня проблемы с запросами HTTP PUT.

Как получить доступ к параметрам запроса PUT? Я думал, что они будут в массиве request.POST, так как в моем понимании PUT отчасти похож на POST, но этот массив всегда пуст.

Что я делаю не так?

Спасибо за помощь

Ответы [ 2 ]

13 голосов
/ 01 февраля 2009

request.POST обрабатывает закодированные данные формы в словарь, который имеет смысл только для отправки формы в веб-браузере. Для PUT нет эквивалента, так как веб-браузеры не PUT формы; представленные данные могут иметь любой тип контента. Вам нужно будет получить необработанные данные из request.raw_post_data, возможно проверить тип контента и обработать его, однако, имеет смысл для вашего приложения.

Больше информации в этой теме .

3 голосов
/ 02 февраля 2009

если вы указываете в диспетчере ResourceBase есть строка вроде:

elif request_method == 'PUT':
    load_put_and_files(request)
    return target.update(request, *args, **kwargs)

load_put_and_files позволяет подготовить для вас запрос. PUT с данными y, request.method - PUT, так что вам не нужно об этом беспокоиться ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...