mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-26 03:23:59 +03:00
Support for request-based queryset limits on ListModelMixin
ListModelMixin uses the get_queryset from the MultipleObjectMixin. This method can be overridden on the View class to return a different queryset, but get_queryset doesn't accept a request parameter in. This commit adds the limit_list hook to override if you want to limit the queryset based on request-information such as the logged in user.
This commit is contained in:
parent
36cc56bc9d
commit
de4604be0a
|
@ -32,8 +32,15 @@ class ListModelMixin(object):
|
|||
"""
|
||||
empty_error = u"Empty list and '%(class_name)s.allow_empty' is False."
|
||||
|
||||
def limit_list(self, request, queryset):
|
||||
"""
|
||||
Override this method to limit the queryset based on information in the request, such as the logged in user.
|
||||
Should return the limited queryset, defaults to no limits.
|
||||
"""
|
||||
return queryset
|
||||
|
||||
def list(self, request, *args, **kwargs):
|
||||
self.object_list = self.get_queryset()
|
||||
self.object_list = self.limit_list(request, self.get_queryset())
|
||||
|
||||
# Default is to allow empty querysets. This can be altered by setting
|
||||
# `.allow_empty = False`, to raise 404 errors on empty querysets.
|
||||
|
|
Loading…
Reference in New Issue
Block a user