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.

Вернуться на верх