Изменить стандартные конечные точки URL-адреса Django Rest Framewrok - PullRequest
0 голосов
/ 02 апреля 2020

Я использую viewsets.ModelViewSet и хочу заменить стандартные URL-адреса конечных точек
, например:
вместо создания нового фрагмента со "стандартной" конечной точкой
POST {BAST_URL} / snippet /
Я хочу заменить его URL-адресом "создать" и отключить стандартный
POST {BAST_URL} / сниппет / create /

Я могу создать новый пользовательский метод создания, но не
* использовать «создать» в URL -> ОШИБКА: невозможно использовать декоратор @action для следующих методов, поскольку они являются существующими маршрутами: create
* Отключение стандартного URL от создания фрагмента

@action(detail=False, methods=['post'])
def create_snippet(self, request, *args, **kwargs):
    return super(SnippettViewSet, self).create(request, *args, **kwargs)

1 Ответ

1 голос
/ 02 апреля 2020

вам нужно передать дополнительный аргумент url_path декоратору @action, как показано ниже

@action(detail=False, methods=['post'], url_path='snippet/create', url_name='snippet_create')
def snippet(self, request, *args, **kwargs):
    return super(SnippettViewSet, self).create(request, *args, **kwargs)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...