如何使用范围输入在Django Admin中为数字数据创建过滤器?
附言仅找到了这个类似的问题,但这里仅建议如何按具体范围进行分组,最后一个问题是2年前。
Django Admin: How do I filter on an integer field for a specific range of values
最佳答案
警告!我的答案中提到了django的API的某些部分,这些部分被认为是内部的,在django的未来版本中可能会更改,而无需任何通知。
请注意,创建自己的过滤器实际上很容易。您需要做的只是:
子类SimpleListFilter
并在其中创建一些方法,该方法将生成您的默认范围值和选定的范围值(用于使用过滤器呈现模板)
设置queryset方法,该方法将采用您的过滤器和过滤器列表queryset提交的参数
使用过滤器创建模板(基于admin/filter.html)
在template
子类中设置SimpleListFilter
属性,指向过滤器模板。
Django将传递给您的模板3个参数:title
-您的过滤器标题(来自类中的title
属性)choices
-由类的choices
方法生成的字典列表(默认情况下,它修改由lookups
方法返回的元组列表)spec
-您的类实例。
从那时起,您可以在模板中使用spec
来访问类的任何属性或方法,因此应该可以创建任何过滤器。
关于python - Django Admin:数值字段过滤器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39640350/