Python ModelAdmin.list\u过滤器文档中第三种类型的用途是什么?[django]

Python ModelAdmin.list\u过滤器文档中第三种类型的用途是什么?[django],python,django,django-modeladmin,Python,Django,Django Modeladmin,Django 1.6的ModelAdmin文档有一些让我困惑的地方。对了,第三种类型对我来说没有意义 文档中说有三种类型可用于列表过滤器,并给出了每种类型的简要示例。第三个例子是: class PersonAdmin(admin.ModelAdmin): list_filter = ( ('is_staff', admin.BooleanFieldListFilter), ) 这个例子让我感到困惑,因为我已经可以将一个布尔字段传递给list|u filter并让

Django 1.6的ModelAdmin文档有一些让我困惑的地方。对了,第三种类型对我来说没有意义

文档中说有三种类型可用于列表过滤器,并给出了每种类型的简要示例。第三个例子是:

class PersonAdmin(admin.ModelAdmin):
    list_filter = (
        ('is_staff', admin.BooleanFieldListFilter),
    )

这个例子让我感到困惑,因为我已经可以将一个布尔字段传递给list|u filter并让管理员呈现所有| Yes | No选项,我不确定第三种类型的要点是什么。有人能详细介绍一下第三个例子吗?为什么有人会使用('field_name',admin.BooleanFieldListFilter)

Django文档中的示例可能更清晰。[0]

实际上,您永远不需要以元组样式传递
BooleanFieldListFilter
本身,原因是:当您的模型中包含
list\u filter
元组时,它已在内部(自动)使用

这就是说,
BooleanFieldListFilter
是子类化
FieldListFilter
的一个例子,如果您要编写自己的自定义子类来处理标准布尔值之外的特殊字段,您可以将自定义子类以这种元组样式传递给
list\u filter

请注意,这不应与文档中更常见的子类化
SimpleListFilter
的情况相混淆。使用这种情况的一个例子是,如果您的模型上有一个方法,该方法返回一个从模型字段的值派生的布尔值,但是相关的模型字段本身不能是布尔值。(我希望这不会与上一段混淆。)


0:我检查了v1.7和dev,但似乎还没有出现这种情况。

如果答案回答了您的问题,请接受答案;如果答案没有回答,请添加评论,我们会解决它。