跳转到主要内容

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

项目描述

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

完整文档请参阅read the docs

https://raw.githubusercontent.com/carltongibson/django-filter/python-coverage-comment-action-data/badge.svg https://badge.fury.io/py/django-filter.svg

版本控制和稳定性策略

Django-Filter是一个成熟且稳定的包。它使用两部分的CalVer版本控制方案,例如21.1。第一个数字是年份,第二个是该年份内的发布编号。

在持续发展的过程中,Django-Filter 致力于支持所有当前版本的 Django、匹配的当前 Python 版本以及 Django REST Framework 的最新版本。

请参阅

当 Python 和 Django 版本达到生命周期的终点时,将停止支持。即使它们仍然被当前版本的 Django 支持,也会停止支持 Python 版本。

其他破坏性更改很少。在需要时,将尽一切努力应用“再加两年”的弃用期限。例如,最初在 23.x 中引入的更改将提供可行的回退,并在 25.1 中最终删除。在不可行的地方,发布说明中将指出没有弃用过程的破坏性更改。

安装

使用 pip 安装

pip install django-filter

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

INSTALLED_APPS = [
    ...
    'django_filters',
]

用法

Django-filter 可以用于生成类似于 Django 管理员 list_filter 界面的接口。它的 API 非常类似于 Django 的 ModelForms。例如,如果您有一个产品模型,您可以为其创建一个带有以下代码的过滤器集:

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 集成文档

支持

如果您需要帮助,可以开始一个 讨论。对于商业支持,请通过他的网站 联系 Carlton Gibson

项目详情


下载文件

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

源代码发行版

django_filter-24.3.tar.gz (144.4 kB 查看哈希值)

上传时间 源代码

构建分发版

django_filter-24.3-py3-none-any.whl (95.0 kB 查看哈希值)

上传时间 Python 3

由以下支持