python - Django 管理员 : Numeric field filter

标签 python django django-admin

如何在 Django Admin 中使用范围输入创建数字数据过滤器?

附注只找到了这个类似的问题,但这里仅建议如何按具体范围进行分组,最后一个问题事件是 2 年前。

Django Admin: How do I filter on an integer field for a specific range of values

最佳答案

警告!我的回答中提到的 django API 的某些部分被认为是内部的,可能会在 django 的 future 版本中进行更改,恕不另行通知。

记住这一点,创建自己的过滤器实际上非常容易。您需要做的就是:

  1. 子类SimpleListFilter并在其中创建一些方法来生成默认范围值和选定的范围值(用于使用过滤器渲染模板)
  2. 设置查询集方法,该方法将采用您的过滤器和过滤器列表查询集提交的参数
  3. 使用您的过滤器创建模板(基于 admin/filter.html)
  4. 设置template您的属性(property)SimpleListFilter子类,指向您的过滤器模板。

Django 将向您的模板传递 3 个参数:

  • title - 您的过滤器标题(取自您类(class)中的 title 属性)
  • choices - choices 生成的字典列表类的方法(默认情况下它修改 lookups 方法返回的元组列表)
  • spec - 你的类实例。

从那时起,您可以使用 spec 访问类的任何属性或方法。在模板中,因此应该可以创建任何过滤器。

关于python - Django 管理员 : Numeric field filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39640350/

相关文章:

python - Django QuerySet 中的 icontains 没有给出不区分大小写的结果?

python - Django 检测图像的主色

django - 扩展 Django Admin 以进行数据导入

带有 zc.buildout 的 Django 1.4 开发环境

django - 在绑定(bind)的 Django 管理表单中分配初始字段值

Django Admin Inlines - 自定义标签?

python - Django 表单保存问题 AttributeError 'tuple' object has no attribute 'get'

python - 从 URL 使用 Python 下载会出现 No Host Supplied 错误

python - 检查字符串是否可以在 Python 中转换为 float

python - 我将 djang1.3.1 更新为 djang1.4 ,错误 : MOD_PYTHON ERROR