mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-07 22:04:48 +03:00
filter_fields attribute for DjangoFilterBackend
This commit is contained in:
parent
36ca4b8e06
commit
0ad675b761
|
@ -78,16 +78,23 @@ class DjangoFilterBackend(BaseFilterBackend):
|
||||||
"""
|
"""
|
||||||
default_filter_set = FilterSet
|
default_filter_set = FilterSet
|
||||||
template = filter_template
|
template = filter_template
|
||||||
|
filter_fields = None
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
assert django_filters, 'Using DjangoFilterBackend, but django-filter is not installed'
|
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):
|
def get_filter_class(self, view, queryset=None):
|
||||||
"""
|
"""
|
||||||
Return the django-filters `FilterSet` used to filter the queryset.
|
Return the django-filters `FilterSet` used to filter the queryset.
|
||||||
"""
|
"""
|
||||||
filter_class = getattr(view, 'filter_class', None)
|
filter_class = getattr(view, 'filter_class', None)
|
||||||
filter_fields = getattr(view, 'filter_fields', None)
|
filter_fields = self.get_filter_fields(view)
|
||||||
|
|
||||||
if filter_class:
|
if filter_class:
|
||||||
filter_model = filter_class.Meta.model
|
filter_model = filter_class.Meta.model
|
||||||
|
|
Loading…
Reference in New Issue
Block a user