django_ufilter.integrations.drf module¶
- class django_ufilter.integrations.drf.DRFFilterBackend[source]¶
Bases:
rest_framework.filters.BaseFilterBackendDRF filter backend which integrates with
django-ufilterThis integration backend can be specified in global DRF settings:
# settings.py REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': [ 'django_ufilter.integrations.drf.DRFFilterBackend', ] }
Alternatively filter backend can be specified per view/viewset bases:
class MyViewSet(ModelViewSet): queryset = MyModel.objects.all() filter_backends = [DRFFilterBackend] filter_fields = ['field1', 'field2']
The following attributes can be specified on the view:
filter_class- explicit filter (FilterSetto 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 inMetafor the generatedFilterSet.filter_class_default- base class to use while creating a newFilterSet. This is primarily useful when using non-Django data-sources. By defaultdefault_filter_setis 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 givenquerysetis 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
DRFFilterBackenddocumentation for list of attributes which can be supplied in view to customize how filterset will be determined.queryset – Query object for filtering
- Returns
- django_ufilter.integrations.drf.URLFilterBackend¶