可以声明性地定义字段查询集过滤器的表单
项目描述
安装
在您的虚拟环境中,使用 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 允许应用关系过滤器。
例如,如果您有三个模型,分别是 Person、Unit 和 Company,并且每个人和单位都有一个外键指向公司,您可以使用实例过滤器轻松地选择查看人员时仅关联公司的单位。
或者,您还可以提供一个不需要参数的查询集方法(方法),以进行更多过滤
instance_filters = { 'units': 'company.units.active' }
普通过滤器
更传统的过滤器结构,允许您提供一个 Q 对象,或键值对的字典,该字典将被传递到查询集的 .filter() 上。
如果您的过滤器键不是该查询集过滤器函数的有效参数,您可能会很容易地弄巧成拙。
表单集
您可以使用此方法创建表单,并将其传递给表单集类或工厂。或者,您可以使用基于 filtered_form.forms.FilteredFormSet 的表单集类,这将正确设置空表单的查询集值,这对于使用动态表单非常有用。
版本历史
1.0.3
修复了一个bug,在django admin中无法创建新对象。
1.0.1
改进文档。
允许在 instance_filter 的值中使用可调用对象。
允许在 filter 的值中使用字典。
1.0
初始发布。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。
源代码分发
django-filtered-form-1.0.3.tar.gz (3.1 kB 查看哈希值)
关闭
django-filtered-form-1.0.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | df65ae53336445fb9a0176e795b8570052d8aa8ac7c0b16d41a7e6dc31d75568 |
|
MD5 | ad1293e4f8db6742ae6ae7a2e3f6fc2a |
|
BLAKE2b-256 | b618464a98053b29365b1fb685dc14dd47cfefbf9febd1f598ae083a4f8b52db |