Django Refinery是一个可重用的Django应用程序,允许用户动态过滤QuerySet。

django-refiner的Python项目详细描述


允许用户根据模型的字段筛选QuerySet,类似于 django管理员的list_filter接口。一个FilterToolhelper类 它将(默认情况下)将筛选器映射到模型字段并创建 用于查询集操作的窗体。helper类支持接口 任何使用过djangoModelForm的人都会觉得很熟悉。

Author:Jacob Radford
Licence:BSD

示例用法

给定一个Product模型,您可以使用:

import refinery

class ProductFilterTool(refinery.FilterTool):
    class Meta:
        model = Product
        fields = ['name', 'price']

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

def product_list(request):
    filtertool = ProductFilterTool(request.GET or None)
    return render_to_response('product/product_list.html',
        {'filtertool': filtertool})

然后在模板中:

<form action="" method="get">
    {{ filtertool.form.as_p }}
    <input type="submit" />
</form>
<h2>Products</h2>
<ul>
  {% for obj in filtertool %}
      <li>{{ obj.name }} - ${{ obj.price }}</li>
  {% endfor %}
</ul>

有关更复杂的使用或自定义需求,请参阅项目文档。

要求

  • Python2.5+
  • Django 1.3+

安装

  • pip install -Udjango-refinery
  • refinery添加到INSTALLED_APPS

要安装Django炼油厂的in-development version,请运行pip install django-refinery==dev

文档

请参阅docs文件夹或read it on readthedocs以获取展开的 有关的信息:

  • 用法示例
  • 贡献
  • 与其他应用程序集成
  • 项目背景
  • 低水平API
  • 创建自定义筛选器

错误

如果你想帮助Django炼油厂的发展, 发布详细的错误报告、提出新功能或建议 文档改进,使用issue tracker。如果你想的话 你自己修,谢谢!Fork the project,进行更改并 send a pull request。请创建一个问题来讨论您的计划。

背景

django炼油厂基于django-filter,一个创建的应用程序 通过Alex Gaynor。对于完整的项目历史和贡献者列表, 请参阅项目文档。

路线图

  • 彻底检查并扩展文档
  • 彻底检查并扩展测试套件
  • 重构泛型类视图(查看listview的分页)
  • 允许集成django floppyforms
  • 允许集成Django Crispy表单
  • 允许对非必需字段进行筛选,并提供选项 筛选未设置的记录的选项。(即fk为空)
  • 允许对用于避免传递内部 get params中的信息(即user__username
  • 研究调整LinkWidget和总体行为以支持 像django-easyfilters那样过滤,或者可能删除小部件?

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

推荐PyPI第三方库


热门话题
如何使用java向dropup html/css添加项目   如何从java中的向量向量打印   Java Maven库项目模板   java使用atmosphere api还是直接使用grizzly?   java JComponent仅部分显示   如何将动态值传递给自定义注释,以从Java数据进行映射。性质   java破解已实现方法的返回类型的最佳方法?   java Netbeans在JFrame Gui布局中覆盖图像   spring java仅向登录用户显示注销按钮   java如何对com进行身份验证。谷歌。云bigquery。带有服务帐户的BigQuery`   java禁止空字符串参数和抛出RuntimeException以阻止方法继续的利弊   java分析项目中的所有JAR以获取版本和许可证信息   Java,数据库为什么要分配一个新对象,而我们可以直接将它放入数据库