url_filter.integrations.drf module¶
-
class
url_filter.integrations.drf.
DjangoFilterBackend
[source]¶ Bases:
rest_framework.filters.BaseFilterBackend
DRF filter backend which integrates with
django-url-filter
This integration backend can be specified in global DRF settings:
# settings.py REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': [ 'url_filter.integrations.drf.DjangoFilterBackend', ] }
Alternatively filter backend can be specified per view/viewset bases:
class MyViewSet(ModelViewSet): queryset = MyModel.objects.all() filter_backends = [DjangoFilterBackend] filter_fields = ['field1', 'field2']
The following attributes can be specified on the view:
filter_class
- explicit filter (FilterSet
to be specific) class which should be used for filtering. When this attribute is supplied, this filterset will be used and all other attributes described below will are ignored.filter_fields
- list of strings which should be names of fields which should be included in the generatedFilterSet
. This is equivalent:class MyFilterSet(ModelFilterSet): class Meta(object): model = MyModel fields = ['fields1', ...]
filter_class_meta_kwargs
- additional kwargs which should be passed inMeta
for the generatedFilterSet
.filter_class_default
- base class to use while creating newFilterSet
. This is primarily useful when using non-Django data-sources. By defaultdefault_filter_set
is used.
-
default_filter_set
¶
-
filter_queryset
(request, queryset, view)[source]¶ Main method for filtering query object
Parameters: - request (HttpRequest) – Request object from the view
- queryset – Query object for filtering
- view (View) – View where this filter backend is being used
Returns: Filtered query object if filtering class was determined by
get_filter_class()
. If not givenqueryset
is returned.Return type: object
-
get_filter_class
(view, queryset=None)[source]¶ Get filter class which will be used for filtering.
Parameters: - view (View) – DRF view/viewset where this filter backend is being used.
Please refer to
DjangoFilterBackend
documentation for list of attributes which can be supplied in view to customize how filterset will be determined. - queryset – Query object for filtering
Returns: - view (View) – DRF view/viewset where this filter backend is being used.
Please refer to
-
url_filter.integrations.drf.
URLFilterBackend
¶