Как добавить пользовательское действие для того же маршрута, что и стандартное, в набор представлений

#django #django-rest-framework #django-rest-viewsets

Вопрос:

Предположим, у нас есть класс набора представлений:

 class SomeViewSet(viewsets.ViewSet):  def create(self, request):  pass   def custom_action(self, request):  pass  

и мы регистрируемся SomeViewSet следующим образом:

 some_router = DefaultRouter() some_router.register(r'some-route', SomeViewSet, basename='some-name')  

Итак, теперь у нас есть SomeViewSet стандартное действие create , которое будет доступно с помощью маршрута some-route/ с использованием POST метода HTTP.

Вопрос в том, как настроить custom_action действие, чтобы оно было доступно по тому же маршруту, что и стандартное create действие ( some-route/ ) с PUT помощью метода HTTP.

Комментарии:

1. Если это так PUT , разве это не вариант просто реализовать то, что custom_action происходит внутри update() ?

2. @BrianDestura да, но update detail это действие, поэтому для доступа к представлению потребуется передать параметр. Маршрут будет чем — то вроде этого some-route/lt;pkgt; вместо some-route/ пути.