urls.py
router.register(r'my_api', MyViewSet)
views.py
class MyViewSet(viewsets.ModelViewSet):
queryset = MyModels.objects.all()
lookup_field = 'slug' # < удаление/добавление этого параметра тоже не особо помогает
def get_serializer(self, *args, **kwargs):
if self.action == 'my_action':
return MySerializer(*args, **kwargs)
@list_route(['post'])
def my_action(self, request, **kwargs):
print(kwargs['slug']) # <-- тут должен получить myslug
...
@list_route(['post'])
def other_action(self, request, **kwargs):
# тут мне slug не нужен, и его не надо в урле передавать
При запросе /my_api/
myslug/my_action/ мне нужно чтобы значение slug передавалось только в my_action.
Сейчас пишет что нет такого url
Замена
router.register(r'my_api', MyViewSet)
на
router.register(r'my_api/(?P<slug>\w+)/', MyViewSet)
не помогает