H.fate
H.fate

Reputation: 644

Django-restframework, filtering against more than or equal 2parameters

I read http://www.django-rest-framework.org/api-guide/filtering/#filtering-against-the-url

My views.py :

class QList(generics.ListAPIView):
    serializer_class = PostSerializer

    def get_queryset(self) :
        lon = self.request.query_params.get('user_lon', '13')
        lat = self.request.query_params.get('user_lat', '15')

# --- other following codes deleted to read easily 

My urls.py :

    urlpatterns = [
        url('^QList/(?P<user_lon>.+)&(?P<user_lat>.+)/$', QList.as_view()),
    ]

I want use more than 2 parameter on Class QList / def get_queryset.

like using http://127.0.0.1:8000/api/QList?user_lon=13&user_lat=15

but i don't know how to make urls.py

How can i treat more than 2 parameters in django rest framework?

Traceback :

Request Method: GET
Request URL: http://127.0.0.1:8000/api/QList?user_lon=13&user_lat=15

Django Version: 1.8
Python Version: 3.5.2
Installed Applications:
[#deleted otehrs
 'django.contrib.sites',
 'bolg',
 'rest_framework',
]
Installed Middleware:
Traceback:
# deleted others 
  16.     url('^QList/(?P<user_lon>.+)&(?P<user_lat>.+)/$', QList.as_view()),

Exception Type: NameError at /api/QList
Exception Value: name 'QList' is not defined

Upvotes: 1

Views: 106

Answers (1)

David Foie Gras
David Foie Gras

Reputation: 2080

You don't have to edit urls.py.

views.py

lon = self.request.GET.get('user_lon', '')
lat = self.request.GET.get('user_lat', '')

And add ?user_lon=13&user_lat=15 end of the GET method url.

Upvotes: 1

Related Questions