diff options
| author | Tom Christie | 2014-08-18 15:34:23 +0100 | 
|---|---|---|
| committer | Tom Christie | 2014-08-18 15:34:23 +0100 | 
| commit | 9f3c7e8930dd86e13efff8b2de1710f47fb74d96 (patch) | |
| tree | b0a5df3d01d026aeb4331ac29ede1f638fcc6af5 | |
| parent | 8244c7cc33e8d8078529dd0a9a3bdc2ce3a817fc (diff) | |
| download | django-rest-framework-9f3c7e8930dd86e13efff8b2de1710f47fb74d96.tar.bz2 | |
Copy filter_backends class attribute before returning it.
| -rw-r--r-- | rest_framework/generics.py | 9 | 
1 files changed, 8 insertions, 1 deletions
| diff --git a/rest_framework/generics.py b/rest_framework/generics.py index 42204841..aea636f1 100644 --- a/rest_framework/generics.py +++ b/rest_framework/generics.py @@ -189,7 +189,13 @@ class GenericAPIView(views.APIView):          """          Returns the list of filter backends that this view requires.          """ -        filter_backends = self.filter_backends or [] +        if self.filter_backends is None: +            filter_backends = [] +        else: +            # Note that we are returning a *copy* of the class attribute, +            # so that it is safe for the view to mutate it if needed. +            filter_backends = list(self.filter_backends) +          if not filter_backends and self.filter_backend:              warnings.warn(                  'The `filter_backend` attribute and `FILTER_BACKEND` setting ' @@ -199,6 +205,7 @@ class GenericAPIView(views.APIView):                  PendingDeprecationWarning, stacklevel=2              )              filter_backends = [self.filter_backend] +          return filter_backends | 
