【问题标题】:Django Admin: Numeric field filterDjango Admin:数字字段过滤器
【发布时间】:2017-01-31 02:36:33
【问题描述】:

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

附:只发现了这个类似的问题,但这里只建议如何按具体范围分组,最后一个问题活动是 2 年前。

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

【问题讨论】:

    标签: python django django-admin


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-14
      • 2012-04-28
      • 1970-01-01
      • 1970-01-01
      • 2011-09-03
      • 2020-11-26
      • 2018-03-31
      • 2015-02-22
      相关资源
      最近更新 更多