Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

645
Visualizações
Django Rest Framework, pasando parámetros con solicitud GET, vistas basadas en clases

Me gustaría que un usuario envíe una solicitud GET a mi API REST de Django:

 127.0.0.1:8000/model/?radius=5&longitude=50&latitude=55.1214

con su longitud/latitud y radio, pasados los parámetros y obtener el conjunto de consultas usando GeoDjango.

Por ejemplo, actualmente tengo:

 class ModelViewSet(viewsets.ModelViewSet): queryset = Model.objects.all()

Y lo que idealmente quiero es:

 class ModelViewSet(viewsets.ModelViewSet): radius = request.data['radius'] location = Point(request.data['longitude'],request.data['latitude'] # filter results by distance using geodjango queryset = Model.objects.filer(location__distance_lte=(location, D(m=distance))).distance(location).order_by('distance')

Ahora un par de errores inmediatos:

1) la request no está definida. ¿Debería usar api_view, es decir, la vista basada en funciones para esto?

2) La página DRF dice que request.data es solo para métodos POST, PUT y PATCH. ¿Cómo puedo enviar parámetros con GET?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Puede anular el método get_queryset para ese propósito. En cuanto a los parámetros de cadena de consulta, tiene razón, request.data contiene datos POST, puede obtener parámetros de cadena de consulta a través de request.query_params

 def get_queryset(self): longitude = self.request.query_params.get('longitude') latitude= self.request.query_params.get('latitude') radius = self.request.query_params.get('radius') location = Point(longitude, latitude) queryset = Model.objects.filter(location__distance_lte=(location, D(m=distance))).distance(location).order_by('distance') return queryset
over 4 years ago · Santiago Trujillo Relatório

0

Tuve el mismo problema, para resolverlo puedes obtener parámetros de url con self.request.parser_context.get('kwargs') bajo el método get_queryset .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda