Django REST Framework как разрешить DELETE только без pk
Мне нужно создать конечную точку:
DELETE /users (удаленные идентификаторы в теле запроса)
Итак, я создал класс UserViewSet, который расширяет mixins.DestroyModelMixin и GenericViewSet и реализовал метод def delete(self, request), он работает для запроса DELETE /users, но проблема в том, что пользователь может отправить DELETE /users/5 запрос и тогда я получаю ошибку "Не найдено".
Я хочу запретить отправку запросов DELETE /users/{id} и разрешить только DELETE /users.
Как я могу это сделать?
Я пытался использовать декоратор @action(methods=['delete'], detail=True) для метода delete, но это ничего не меняет.
Также я пытался использовать эту подпись:
def delete(self, request, pk=None):
if pk:
return Response(data='PK is not allowed in DELETE method')
По какой-то причине он даже не сопоставляет этот метод с DELETE/{id} и я все равно получаю ошибку "Not found".
UPD. Я удалил mixins.DestroyModelMixin из классов extend и теперь DELETE /users работает, но DELETE/{id} выдает мне 404 (Страница не найдена), когда я пытаюсь отправить DELETE с id.
Я бы хотел что-то вроде метод не разрешен
Вы получаете 404 (Page not found), потому что у вас нет /users/<int:id> в URLConf.