'How to add url keyword parameter in list action of drf?
I want to generate url like /users/{role_id}/,this means show all users that role_id=={role_id} my code like this
class OutWorkAllocationView(viewsets.GenericViewSet):
"""
"""
filter_backends = (BaseFilterBackend, filters.OrderingFilter)
authentication_classes = (JWTAuthentication,)
serializer_class = someSerializer
lookup_field = 'role_id'
def get_queryset(self):
role_id = self.kwargs['id']
user_ids = UserRoleRef.objects.filter(role_id=role_id).values_list('user_id', flat=True)
return User.objects.filter(id__in=user_ids)
@action(methods=['get'], detail=True)
def list_allocation(self):
queryset = self.filter_queryset(self.get_queryset())
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
serializer = self.get_serializer(queryset, many=True)
return Response(serializer.data)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
