diff options
| author | Tom Christie | 2014-08-18 16:14:45 +0100 |
|---|---|---|
| committer | Tom Christie | 2014-08-18 16:14:45 +0100 |
| commit | e85ef3b479a872ad6fa0db93e46caec1014bbaf3 (patch) | |
| tree | f9f9ef657d752af329d4eb982c8869e48b38e1ac | |
| parent | d34dfc3fac779a38f67788e8dfd0a2e7ef09d080 (diff) | |
| parent | 9f3c7e8930dd86e13efff8b2de1710f47fb74d96 (diff) | |
| download | django-rest-framework-e85ef3b479a872ad6fa0db93e46caec1014bbaf3.tar.bz2 | |
Merge pull request #1772 from tomchristie/fix-1583
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 |
