Использование строк запроса в django GET
У меня есть GET-запрос в django rest framework, который получает данные, используя kwargs.
class FetchUserByEmail(APIView):
permission_classes = (permissions.AllowAny,)
def get(self, request, **kwargs):
try:
email = kwargs.get('email')
user = User.objects.get(email=email)
return Response({"Success": UserSerializer(user).data}, status=status.HTTP_200_OK)
except(KeyError, User.DoesNotExist) as e:
return Response({"Failure": str(e)}, status=status.HTTP_404_NOT_FOUND)
Вот мой url
path(r'fetch/<str:email>', FetchUserByEmail.as_view(), name='fetch_user'),
Однако я хочу получить данные с помощью строки запроса,
Что-то вроде http://base/fetch?email=something
Как мне изменить мои урлы и представления, чтобы сделать это?
Вы можете сделать что-то вроде -
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
и ваш запрос может быть
http://base/?city=something