Django 管理员:我可以为模型方法添加过滤器吗?
Posted
技术标签:
【中文标题】Django 管理员:我可以为模型方法添加过滤器吗?【英文标题】:Django admin: Can I add a filter for a model method? 【发布时间】:2011-05-11 15:50:07 【问题描述】:我有一个模型方法 status(),它返回“OK”、“WARNING”或“ERROR”。通过将状态添加到 list_display ModelAdmin 选项,可以在 Django 管理中显示状态。我还想做的是在 Django 管理员中激活状态过滤器。但是,如果我将状态添加到 list_filter ModelAdmin 选项,我会收到错误消息。无论如何要为模型方法添加过滤器吗?
【问题讨论】:
【参考方案1】:你只能过滤数据库列,所以你被卡住了。作为一种解决方法,你可以在你识别状态的源列上添加过滤,或者为状态添加一个新的 db 列。
【讨论】:
这个答案来自 2010 年。它仍然正确吗?难道不是根据模型的字段而是根据模型的方法进行过滤吗?【参考方案2】:您可以将 admin.SimpleListFilter 子类化,如下所述:
https://docs.djangoproject.com/en/3.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter
【讨论】:
以上是关于Django 管理员:我可以为模型方法添加过滤器吗?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 django admin 中显示多个模型的更改列表?