Usage¶
To use drf-querystringfilter in a project:
import drf_querystringfilter
Configure your view to use it:
class DemoModelView(ListAPIView):
filter_backends = (QueryStringFilterBackend,)
filter_fields = ['username', 'email', 'is_staff', 'date_joined']
filter_blacklist = ['.*__'] # disable any join
Filtering¶
exact/iexact¶
?username=admin
contains¶
?email__contains=@gmail
objects.filter(email__contains="@gmail")
gt/gte¶
?int__gt=5
objects.filter(int__gt=5)
lt/lte¶
?int__lt=5
objects.filter(int__lt=5)
is¶
?flag__is=1
?flag__is=true
objects.filter(flag=True)
or
?flag__is=0
?flag__is=false
objects.filter(flag=False)
isnull¶
?flag__isnull=true
?flag__isnull=false
objects.filter(flag=True)
not¶
?name__not=abc
objects.exclude(name="abc")
inlist¶
?id__in=1,2,4
objects.filter(id__in=[1,2,3])
not_inlist¶
?id__not_in=1,2,4
objects.exclude(id__in=[1,2,3])
in¶
?id__in=1&in__in=2&id__in=3
objects.filter(id__in=[1,2,3])
not_in¶
?id__not_in=1&in__not_in=2&id__not_in=3
objects.exclude(id__in=[1,2,3])
inarray¶
?json__array__inarray=a
objects.filter(json__array__contains=["a"])
int_inarray¶
?json__array__int_inarray=1
objects.filter(json__array__contains=[1])