From 0ad675b761f62b9a5fa37fc28689cb9f45b5f511 Mon Sep 17 00:00:00 2001 From: Zdanchuk Andrey Date: Thu, 23 Jun 2016 13:11:57 +0300 Subject: [PATCH] filter_fields attribute for DjangoFilterBackend --- rest_framework/filters.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/rest_framework/filters.py b/rest_framework/filters.py index 3836e8170..e5412a75e 100644 --- a/rest_framework/filters.py +++ b/rest_framework/filters.py @@ -78,16 +78,23 @@ class DjangoFilterBackend(BaseFilterBackend): """ default_filter_set = FilterSet template = filter_template + filter_fields = None def __init__(self): assert django_filters, 'Using DjangoFilterBackend, but django-filter is not installed' + def get_filter_fields(self, view): + filter_fields = getattr(view, 'filter_fields', None) + if not filter_fields: + filter_fields = self.filter_fields + return filter_fields + def get_filter_class(self, view, queryset=None): """ Return the django-filters `FilterSet` used to filter the queryset. """ filter_class = getattr(view, 'filter_class', None) - filter_fields = getattr(view, 'filter_fields', None) + filter_fields = self.get_filter_fields(view) if filter_class: filter_model = filter_class.Meta.model