How to use parameters in DRF router

Viewed 3272

Hello guys so I came to realise that DRF ModelViewSet is a quick way to make rest views, I am trying to use parameters within the router url but the ViewSet does not detect the param

Here is how my viewset looks

class ClientRequests(ModelsViewSet):
    serializer_class = serializers.ClientRequestSerializer

   def get_queryset(self):
      return models.ClientRequest.objects.filter(cliend_id=self.request.kwargs.get('client_id')

now I register the router as below

router = DefaultRouter()
router.register('/<int:client_id/requests', views.ClientRequests, basename='clients request api endpoint')

urlpatterns=[
     path('', include(router.urls))

Is this the right way to use restframework router and how can I pass paramters to the url when using router

1 Answers

Use regex notation

router.register(
    r'(?P<client_id>\d+)/requests',
    views.ClientRequests,
    basename='clients request api endpoint'
)
Related