跳转到主要内容

Django-filter是一个可重用的Django应用程序,允许用户通过URL参数动态地过滤查询集。

项目描述

Django-filter是一个可重用的Django应用程序,允许用户通过URL参数声明性地添加动态QuerySet过滤。

完整的文档请查看文档

https://travis-ci.org/carltongibson/django-filter.svg?branch=master https://codecov.io/gh/carltongibson/django-filter/branch/develop/graph/badge.svg https://badge.fury.io/py/django-filter.svg

要求

  • Python: 2.7, 3.6

  • Django: 1.11

  • DRF: 3.7, 3.8

Django filter EX是Django filter 1.1.0的一个分支,其中包含一个小的补丁,用于提高默认过滤器集在链式过滤器上的性能。它通过了所有测试,并适用于我的用例。

安装

使用pip安装

pip install django-filter

然后,将'django_filters'添加到您的INSTALLED_APPS

INSTALLED_APPS = [
    ...
    'django_filters',
]

使用方法

Django-filter可用于生成类似于Django admin的list_filter接口的界面。它具有与Django的ModelForms非常相似的API。例如,如果您有一个Product模型,您可以使用以下代码为其创建一个过滤器集:

import django_filters

class ProductFilter(django_filters.FilterSet):
    class Meta:
        model = Product
        fields = ['name', 'price', 'manufacturer']

然后,在您的视图中,您可以进行以下操作:

def product_list(request):
    filter = ProductFilter(request.GET, queryset=Product.objects.all())
    return render(request, 'my_app/template.html', {'filter': filter})

与Django REST Framework一起使用

Django-filter为与Django REST Framework一起使用提供了一个自定义的FilterSet和过滤器后端。

要使用此功能,请调整您的导入以使用django_filters.rest_framework.FilterSet

from django_filters import rest_framework as filters

class ProductFilter(filters.FilterSet):
    class Meta:
        model = Product
        fields = ('category', 'in_stock')

有关更多详细信息,请参阅DRF集成文档

支持

如果您对使用或开发有任何疑问,您可以加入邮件列表

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

django-filter-ex-1.2.0.tar.gz (110.9 kB 查看散列值)

上传时间

构建分发

django_filter_ex-1.2.0-py2.py3-none-any.whl (44.0 kB 查看散列值)

上传时间 Python 2 Python 3

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面