Я предполагаю, что вы спрашиваете, можете ли вы иметь такой метод:
def restaction(request, id):
if request.method == "PUT":
someparam = request.PUT["somekey"]
Ответ - нет, вы не можете.Django не создает такие словари для запросов PUT, OPTIONS и DELETE, объяснение объясняется здесь .
Подводя итог, можно сказать, что концепция REST состоит в том, что данные, которыми вы обмениваетесь, могут быть намного сложнее, чем простая карта ключей к значениям.Например, PUTting изображение или использование json.Фреймворк не может знать, каким образом вы можете отправлять данные, поэтому он делает очевидную вещь - давайте справимся с этим.См. Также ответ на этот вопрос , где дается тот же ответ.
Теперь, где вы находите данные?Ну, согласно документам , в django 1.2 есть request.raw_post_data
.На первый взгляд, похоже, что django 1.3 будет поддерживать request.read()
, то есть семантику, подобную файлу.