Я создаю приложение с помощью Django 2.1, и я хочу иметь возможность выполнять запросы PATCH / DELETE через ajax-вызовы.Изучив этот вопрос, я обнаружил, что решение состоит в том, чтобы обмануть браузер с помощью запроса POST, но установив заголовок X_METHODOVERRIDE на нужный метод.
Я бы начал делать это, создав промежуточное программное обеспечение, которое позаботитсяэтого.Как лучше всего это сделать?
Обратите внимание, что пока я не хочу использовать код Django-REST
для выполнения запроса DELETE:
view.py
class CategoryManageView(StaffRequiredMixin, View):
model = Category
response_dict = {'status': False, 'text': '', 'data': {}}
def delete(self, request, *args, **kwargs):
cat = get_object_or_404(Category, request.POST['id'])
self.response_dict['data'] = cat
cat.delete()
self.response_dict['status'] = True
self.response_dict['text'] = 'Category deleted successfuly'
return JsonResponse(self.response_dict)
Если метод вызова ajax установлен на УДАЛИТЬ вместо POST или GET, я получаю сообщение об ошибке в консоли:
УДАЛИТЬ http://127.0.0.1:8000/dashboard/admin/categories/manage 403 (Запрещено)