2013-05-21 69 views
1

我的模型包含一個選擇字段爲空:Django管理list_filter不顯示(無)可供選擇現場

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

在我的ModelAdmin過濾器:

list_filter = ['status'] 

不顯示(無)作爲選項,即使模型的表包含該字段的NULL值。

我在做什麼錯?

回答

1

此信息可能是有用的:Filtering Django Admin by Null/Is Not Null

使用的選擇,我建議設置一個默認值,它是在選擇列表或元組。這確保get_FOO_display方法也適用於所有值。

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

+0

我的解決辦法是在的ModelAdmin指定FieldListFilter類型,即:list_filter = [( '狀態',AllValuesFieldListFilter)]。我深入瞭解了admin/filter.py源代碼,以解決這個問題,因此AndrewS爲我提供了一個解決方案。由於該文檔包含警告「FieldListFilter API被認爲是內部的,可能會被更改」,因此我將這個問題保留爲未答覆。 – user1255933

+0

對不起安德魯,我不允許你投票(沒有足夠的聲望點!):( – user1255933