Нужна помощь: В Django при обработке следующего когда views.py:
class PasClone(View):
def put(self, request, treeFrom, treeTo):
return JsonResponse({ 'treeFrom':treeFrom }, 'treeTo':treeTo)
в браузер возвращаются значения:
{"treeFrom": null, "treeTo": null}
При том, что в Header-е запроса
treeFrom=75&treeTo=75
Если
def put заменить на def get то значения приходят на сервер и возвращаются в браузер. Но нужен именно метод put В чем я ошибся?
Вот содержание urls.py
urlpatterns += [
url(r'^pas_clone(/|)((?P<treeFrom>[0-9]+)|)(/|)((?P<treeTo>[0-9]+)|)$', PasClone.as_view())
]
Через HTML формы Вы не сможете передать PUT запрос.
По спецификации они поддерживают только GET и POST запросы.
Для того, чтобы решить эту проблему, Вам потребуется использовать JavaScript и явно указать, что Вы отправляете данные PUT методом (например, с помощью jQuery).
Пример:
$.ajax({
url: '/api',
type: 'PUT',
success: function(response) {
//...
}
});
Некоторые предлагают туннелировать через POST, то есть посылать POST запрос со скрытым полем, в котором указывать значение put, но я не советую это использовать.
Продвижение своими сайтами как стратегия роста и независимости