Je voudrais qu'un utilisateur envoie une requête GET à mon API REST Django :
127.0.0.1:8000/model/?radius=5&longitude=50&latitude=55.1214
avec sa longitude/latitude et son rayon, passés en paramètres, et obtenir le queryset en utilisant GeoDjango.
Par exemple, actuellement, j'ai :
class ModelViewSet(viewsets.ModelViewSet):
queryset = Model.objects.all()
Et ce que je veux idéalement, c'est :
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')
Maintenant, quelques erreurs immédiates :
1) request
n'est pas définie - dois-je utiliser api_view, c'est-à-dire la vue basée sur les fonctions, pour cela ?
2) Page DRF indique que request.data est réservé aux méthodes POST, PUT et PATCH. Comment envoyer des paramètres avec GET ?