Не передаются параметры в метод POST

118
06 марта 2021, 20:50

Нужна помощь: В 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())
]
Answer 1

Через HTML формы Вы не сможете передать PUT запрос.

По спецификации они поддерживают только GET и POST запросы.

Для того, чтобы решить эту проблему, Вам потребуется использовать JavaScript и явно указать, что Вы отправляете данные PUT методом (например, с помощью jQuery).

Пример:

$.ajax({
   url: '/api',
   type: 'PUT',
   success: function(response) {
     //...
   }
});

Некоторые предлагают туннелировать через POST, то есть посылать POST запрос со скрытым полем, в котором указывать значение put, но я не советую это использовать.

READ ALSO
Работа с inline-block

Работа с inline-block

Как можно задать максимальное количество блоков в линии в этом коде, что бы не выполнялся перенос относительно ширины?:

142
Как сверстать чекбокс?

Как сверстать чекбокс?

как сверстать такое? я сделала что-то похожее, но что-то не работает

136
В какой-то момент, отскакивающий от краёв канваса мяч, попадает в баг и ведет себя аномально

В какой-то момент, отскакивающий от краёв канваса мяч, попадает в баг и ведет себя аномально

Пишу небольшую програмку для отображения отскакивающего от краёв мячаНекоторое время все работает хорошо, но в какой-то момент, по неизвестной...

98
Потеря данных при записи файла File.WriteAllLines

Потеря данных при записи файла File.WriteAllLines

Есть файл, в котором находятся данные data1, полное имя с адресом в переменной FullFileNameЯ записываю новые данные в данный файл File

136