Я хотел бы отфильтровать набор запросов в представлении, используя несколько параметров запроса, но «request.query_params» может получить только первый параметр запроса в моей строке запроса.
Вот мой URLConf:
urlpatterns = [
...
re_path(r'^descsearch/$', views.DescriptionSearchView.as_view(), name='descsearch'),
]
Вот верхняя часть моего представления, где я пытаюсь получить два параметра запроса из строки запроса («description» и «descSearchMethod»):
class DescriptionSearchView(generics.ListAPIView):
serializer_class = DrawingSerializer
def get_queryset(self):
print("request.query_params: " + str(self.request.query_params))
description = self.request.query_params.get('description')
print("description: " + description)
descSearchMethod = self.request.query_params.get('descSearchMethod')
print("descSearchMethod: " + descSearchMethod)
...
Когда я выполните этот запрос GET, используя curl:
curl -X GET http://127.0.0.1:8000/api/descsearch/?description=O-RING&descSearchMethod=and
Операторы печати в консоли Django показывают, что только первый параметр запроса "description" находится в QueryDict.
request.query_params: <QueryDict: {'description': ['O-RING']}>
description: O-RING
Internal Server Error: /api/descsearch/
...
Если я измените порядок так, чтобы «descSearchMethod» был первым параметром запроса, только он показывает.
Почему в QueryDict отображается только первый параметр запроса?