如何使用范围输入在Django Admin中为数字数据创建过滤器?
P.S。只发现了这个类似的问题,但这里只建议如何按具体范围分组,最后一个问题活动是2年前。
Django Admin: How do I filter on an integer field for a specific range of values
答案 0 :(得分:1)
警告!在我的回答中提到的django API的某些部分被认为是内部的,可能会在未来的django版本中更改,而不会发出任何通知。
记住这一点,实际上很容易创建自己的过滤器。您所需要做的就是:
SimpleListFilter
并在其中创建一些方法,它将生成默认范围值和选定范围值(用于使用过滤器渲染模板)template
子类中设置SimpleListFilter
属性,指向您的过滤器模板。Django将传递给你的模板3参数:
title
- 您的过滤器标题(取自您班级的title
财产)choices
- 您的类的choices
方法生成的dicts列表(默认情况下,它会修改lookups
方法返回的元组列表)spec
- 您的班级实例。从那时起,您可以使用模板中的spec
来获取班级的任何属性或方法,因此应该可以创建任何过滤器。