如何在 Django Admin 中使用范围输入创建数字数据过滤器?
附注只找到了这个类似的问题,但这里仅建议如何按具体范围进行分组,最后一个问题事件是 2 年前。
Django Admin: How do I filter on an integer field for a specific range of values
最佳答案
警告!我的回答中提到的 django API 的某些部分被认为是内部的,可能会在 django 的 future 版本中进行更改,恕不另行通知。
记住这一点,创建自己的过滤器实际上非常容易。您需要做的就是:
- 子类
SimpleListFilter
并在其中创建一些方法来生成默认范围值和选定的范围值(用于使用过滤器渲染模板) - 设置查询集方法,该方法将采用您的过滤器和过滤器列表查询集提交的参数
- 使用您的过滤器创建模板(基于 admin/filter.html)
- 设置
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/