【问题标题】:Django-restframework, filtering against more than or equal 2parametersDjango-rest 框架,过滤大于或等于 2 个参数
【发布时间】:2016-12-27 01:26:31
【问题描述】:

我读过http://www.django-rest-framework.org/api-guide/filtering/#filtering-against-the-url

我的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 

我的 urls.py :

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

我想在 Class QList / def get_queryset 上使用超过 2 个参数。

喜欢使用http://127.0.0.1:8000/api/QList?user_lon=13&amp;user_lat=15

但我不知道如何制作 urls.py

如何在 django rest 框架中处理超过 2 个参数?

追溯:

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

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    您不必编辑 urls.py。

    views.py

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

    并在 GET 方法 url 末尾添加?user_lon=13&amp;user_lat=15

    【讨论】:

      猜你喜欢
      • 2017-10-06
      • 1970-01-01
      • 1970-01-01
      • 2018-11-19
      • 2012-12-24
      • 2017-05-27
      • 2017-09-24
      • 2019-02-28
      • 1970-01-01
      相关资源
      最近更新 更多