django filter是一个可重用的django应用程序,允许用户动态过滤queryset。
django-filter的Python项目详细描述
django过滤器是一个可重用的django应用程序,允许用户以声明的方式 从url参数添加动态筛选QuerySet。
关于read the docs的完整文档。
要求
- python:3.4、3.5、3.6、3.7
- django:1.11、2.0、2.1、2.2
- drf:3.8+
从2.0版开始,Django过滤器仅限于Python 3。 如果需要支持Python2.7,请使用1.1版本。
安装
使用pip安装:
pip install django-filter
然后将'django_filters'添加到INSTALLED_APPS中。
INSTALLED_APPS=[...'django_filters',]
用法
django过滤器可用于生成类似于django的接口 管理员的list_filter接口。它有一个非常类似于django的api ModelForms。例如,如果你有一个产品模型,你可以有一个 为其设置筛选器,代码为:
importdjango_filtersclassProductFilter(django_filters.FilterSet):classMeta:model=Productfields=['name','price','manufacturer']
然后在您的视图中,您可以执行以下操作:
defproduct_list(request):filter=ProductFilter(request.GET,queryset=Product.objects.all())returnrender(request,'my_app/template.html',{'filter':filter})
与django rest framework一起使用
django filter提供一个自定义的FilterSet和过滤器后端,用于 django rest框架。
要使用此项,请调整导入以使用 django_filters.rest_framework.FilterSet
fromdjango_filtersimportrest_frameworkasfiltersclassProductFilter(filters.FilterSet):classMeta:model=Productfields=('category','in_stock')
有关更多详细信息,请参见DRF integration docs。
支架
如果您对使用或开发有疑问,可以加入 mailing list