Измените url редактирования, динамически используя Datatable Editor
Я ищу, как динамически обновлять конфигурацию ajax, используя данные из ресурса при обновлении записи. Django REST ожидает id в конце url и метод запроса должен быть типа PUT
Я потратил некоторое время, чтобы понять, как обновить ajax-запрос, выполняемый плагином Datatable Editor. Я использую Django Rest в качестве бэкенда. Это может быть полезно для тех, кто ищет похожий ответ.
Технически вы можете обновить параметры ajax в объекте редактора перед отправкой запроса, используя событие preSubmit Event.
editor.on('preSubmit', (e, request,) =>{
let _url = new URL(window.location.origin + "/" + editor.ajax().url)
if(request.action == 'edit'){
editor.ajax().url = `${_url.protocol}//${_url.host}/api/v1/some-endpoint/${Object.keys(request.data)[0]}/${_url.search}`;
editor.ajax().type = 'PUT'
}
editor.ajax().data = request.data[Object.keys(request.data)]
})
Это обновит ajax-конфигурацию запроса на редактирование прямо перед его отправкой. Django Rest ожидает PUT запрос и id записи, который должен быть добавлен в конце URL. Как вы можете видеть, мы берем id из объекта data (это первый ключ объекта request.data), и мы также можем изменить тип запроса на PUT.