Python ModelAdmin.list\u过滤器文档中第三种类型的用途是什么?[django]
Django 1.6的ModelAdmin文档有一些让我困惑的地方。对了,第三种类型对我来说没有意义 文档中说有三种类型可用于列表过滤器,并给出了每种类型的简要示例。第三个例子是: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并让
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,但似乎还没有出现这种情况。如果答案回答了您的问题,请接受答案;如果答案没有回答,请添加评论,我们会解决它。