可以按声明定义的每个字段查询集筛选器的窗体

django-filtered-form的Python项目详细描述


安装

在virtualenv中,使用pip install django-filteredform

您不需要将它安装到您的settings.INSTALLED_APPS中,因为它 不提供任何模型或模板,仅提供表单。

用法

在django模型窗体的字段上定义筛选器的声明方式:

from django import forms
from people.models import Person
from filtered_form.forms import FilteringForm

class PersonAdminForm(FilteringForm):
    class Meta:
        model = Person

    instance_filters = {
        'units': 'company.units'
    }
    filters = {
        'units': models.Q(is_active=True),
        'colours__in': ['red','blue','green']
    }

instance_filters

instance_filters允许应用关系筛选器。

例如,如果有三个模型,PersonUnitCompany, 每个人和单位都有公司的外键,你可以 使用实例筛选器可以轻松地仅选择关联公司的单位 观察一个人时的疑问。

或者,您可以提供一个queryset方法(不需要参数)。 有关更多筛选信息:

instance_filters = {
    'units': 'company.units.active'
}

普通filters

一个更传统的过滤器结构,它允许您提供一个Q对象,或者 键值对的dict,它将被传递到queryset上的.filter()

如果你的过滤键无效的话,你可以很容易地开枪打自己的脚 该查询集上的筛选器函数的参数。

表单集

您可以使用此方法创建表单,然后将其传递给您的表单集 等级或工厂。或者,可以有一个基于filtered_form.forms.FilteredFormSet的formset类, 它还将在空窗体上正确设置queryset值,这是非常 在使用动态窗体时很有用。

版本历史记录

1.0.3

修复在django管理中无法创建新对象的错误。

1.0.1

改进文档。

instance_filter的值中允许可调用。

允许值为filter的dict。

1.0

初次发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Google应用程序引擎Jsf2 welcomefilelist不工作   Java学校练习   jar如何在java应用程序中完成http请求流   java在将列表数据放入映射时遇到异常   java安卓studio谷歌前置条件   在Eclipse中使用gradle运行java项目   java CXF返回元素列表   java直线与垂线相交的精度   java将图像从磁盘加载到JSP页面   多线程在Java多线程进程中更新布尔值   java SDK目录“C:\Users\User\AppData\Local\Android\SDK”不存在   单击“确定”按钮时,java GUI登录系统不会做出反应   雅加达。网ConnectException:添加weblogicapplication后。xml   在两个用户定义的点之间进行java二进制搜索,返回输入的两个点之间的所有名称   需要Java IntelliJ帮助才能不读取我的文件吗   java在序列化过程中动态忽略JSON属性仅在某些情况下,对于其他api端点,不应进行过滤   java SpringBoot REST API MockMVC测试未成功创建用户,尽管在React项目中使用了相同的功能   调试java。jvisulavm中添加JMXConnection时的lang.SecurityException   基于java的web边缘检测浏览器