mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-09-17 01:32:30 +03:00
Add query parameter filtering to list method
This commit is contained in:
parent
38a74b42da
commit
e3d5554c4a
|
@ -37,8 +37,21 @@ class ListModelMixin:
|
|||
List a queryset.
|
||||
"""
|
||||
def list(self, request, *args, **kwargs):
|
||||
|
||||
queryset = self.filter_queryset(self.get_queryset())
|
||||
|
||||
query_params = request.query_params
|
||||
if query_params is not None:
|
||||
params = {}
|
||||
for key, value in query_params.items():
|
||||
try:
|
||||
if self.model._meta.get_field(key):
|
||||
params[key] = value
|
||||
except FieldDoesNotExist:
|
||||
pass
|
||||
if(params):
|
||||
queryset = self.queryset.filter(**params)
|
||||
|
||||
page = self.paginate_queryset(queryset)
|
||||
if page is not None:
|
||||
serializer = self.get_serializer(page, many=True)
|
||||
|
@ -47,6 +60,8 @@ class ListModelMixin:
|
|||
serializer = self.get_serializer(queryset, many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
|
||||
|
||||
|
||||
class RetrieveModelMixin:
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue
Block a user