0

I've a GET request in django rest framework that fetches data using kwargs.

class FetchUser(APIView):

    def get(self, request, **kwargs):
        try:
            email = kwargs.get('email')
            user = User.objects.get(email=email)
            return Response(UserSerializer(user).data, status=status.HTTP_200_OK)
        except(KeyError, User.DoesNotExist) as e:
            return Response(str(e), status=status.HTTP_404_NOT_FOUND)

Here's my url

path(r'fetch/<str:email>', FetchUser.as_view(), name='fetch_user'),

However I want to fetch the data using a query string,

Something like http://base/fetch?email=something

How do I modify my urls and views to do this?

Tannisha Hill
  • 643
  • 3
  • 13

1 Answers1

1

You can do something like -

def get_queryset(self):
    cityId = self.request.GET.get('city')
    # this reads query param
    if cityId is None:
        queryset = branch.objects.all()
        # queryset = branch.objects.none()
    else:
        queryset = branch.objects.filter(city=cityId)
    return queryset

and your query can be

http://base/?city=something
Ranu Vijay
  • 793
  • 8
  • 15