Как заставить DRF использовать url-путь как пустой и базовый путь?

Я пытаюсь опустить URL-адрес для действия в наборе представлений, например

@action(detail=False, methods=['patch'], url_path='')
def update_current_user(self, request):

Но когда я задаю url_path в качестве пустой строки, DRF по умолчанию использует имя функции и ищет маршрут по адресу /api/current-user/update_current_user. Я хочу, чтобы он посмотрел на /api/current-user.

Как удалить весь путь для функции и использовать базовый путь?

Это экземпляр так называемого шаблона "Singleton Endpoint", в котором присутствует только один экземпляр ресурса - никаких списков. Это реализуется путем указания пустого базового пути для ресурса и обработки пути к ресурсу в ViewSet.

router.register(r"", CurrentUserViewSet, basename="current-user")
class CurrentUserViewSet(viewsets.ViewSet):
    ...
    @action(detail=False, methods=["patch"], url_path="current-user", url_name="current-user")
    def current_user(self, request):
        ...
        if request.method == 'GET':
            ...
        elif request.method == 'PATCH':
            ...
Вернуться на верх