router.register(R 'my_api', MyViewSet)
class MyViewSet(viewsets.ModelViewSet):
queryset = MyModels.objects.all()
lookup_field = 'slug' # < add/delete this option also does not help
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']) # <-- here needs to myslug
...
@list_route(['post'])
def other_action(self, request, **kwargs):
# then I slug not needed, and not necessary in the url to transfer
router.register(R 'my_api', MyViewSet)
router.register(R my_api/(?P<slug>\w+)/', MyViewSet)</slug>
Find more questions by tags DjangoRESTful API