def get_filter_introspectors(view):
from rest_framework import filters
try:
from django_filters.rest_framework.backends \
import DjangoFilterBackend as third_party_django_filter_backend
except ImportError:
third_party_django_filter_backend = filters.DjangoFilterBackend
filters_map = {
third_party_django_filter_backend: DjangoFilterBackendIntrospector,
filters.DjangoFilterBackend: DjangoFilterBackendIntrospector,
filters.OrderingFilter: OrderingFilterBackendIntrospector,
}
filter_backends = getattr(view, 'filter_backends', [])
introspectors = []
for backend in filter_backends:
backend = backend if inspect.isclass(backend) else backend.__class__
introspectors.append(
filters_map.get(backend, BaseFilterBackendIntrospector)(view, backend)
)
return introspectors
评论列表
文章目录