【问题标题】:django admin list_filter does not display (None) for choice fielddjango admin list_filter 不显示(无)选择字段
【发布时间】:2013-05-15 15:45:23
【问题描述】:

我的模型包含一个可以为空的选择字段:

status = models.CharField(max_length=255, choices=STATUS_CHOICES, blank=True, null=True)

我的 ModelAdmin 中的过滤器:

list_filter = ['status']

不显示 (None) 作为选项,即使模型表包含该字段的 NULL 值。

我做错了什么?

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    这篇文章可能有用:Filtering Django Admin by Null/Is Not Null

    当使用选项时,我建议在选项列表或元组中设置一个默认值。这确保了get_FOO_display 方法也适用于所有值。

    https://docs.djangoproject.com/en/dev/ref/models/fields/#choices

    【讨论】:

    • 我的解决方案是在 ModelAdmin 中指定 FieldListFilter 类型,即:list_filter = [('status', AllValuesFieldListFilter)]。我深入研究了 admin/filter.py 源代码来解决这个问题,所以这是 AndrewS 引导我找到解决方案的一个方法。由于该文档包含警告“FieldListFilter API 被认为是内部的并且可能会被更改。”,我将这个问题保持为未回答。
    • 对不起,安德鲁,我不能投票给你(没有足够的声望点!):(
    猜你喜欢
    • 2018-03-05
    • 2016-06-02
    • 1970-01-01
    • 2023-01-03
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    相关资源
    最近更新 更多