mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-09-16 17:22:32 +03:00
Add query parameter filtering to list method
This commit is contained in:
parent
5f024d9c78
commit
414e582c26
|
@ -37,15 +37,14 @@ class ListModelMixin:
|
||||||
List a queryset.
|
List a queryset.
|
||||||
"""
|
"""
|
||||||
def list(self, request, *args, **kwargs):
|
def list(self, request, *args, **kwargs):
|
||||||
|
|
||||||
queryset = self.filter_queryset(self.get_queryset())
|
queryset = self.filter_queryset(self.get_queryset())
|
||||||
|
|
||||||
query_params = request.query_params
|
try:
|
||||||
params = {key: value for key, value in query_params.items()
|
params = {key: value for key, value in request.query_params.items() if key in self.model._meta.get_fields()}
|
||||||
if key in self.model._meta.get_fields()}
|
if params is not None:
|
||||||
|
queryset = queryset.filter(**params)
|
||||||
if params:
|
except AttributeError:
|
||||||
queryset = self.queryset.filter(**params)
|
pass
|
||||||
|
|
||||||
page = self.paginate_queryset(queryset)
|
page = self.paginate_queryset(queryset)
|
||||||
if page is not None:
|
if page is not None:
|
||||||
|
@ -55,8 +54,6 @@ class ListModelMixin:
|
||||||
serializer = self.get_serializer(queryset, many=True)
|
serializer = self.get_serializer(queryset, many=True)
|
||||||
return Response(serializer.data)
|
return Response(serializer.data)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class RetrieveModelMixin:
|
class RetrieveModelMixin:
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue
Block a user