Django admin上列表显示项的自定义值

2024-09-22 20:35:15 发布

您现在位置:Python中文网/ 问答频道 /正文

在模型中,我有一个subtitle字段,如果给定对象的字段不存在值,则该字段将填充None

有没有什么方法可以显示自定义的值(比如Not AvailableNot Applicable),而不仅仅是显示(None)

字段

sub_title = models.CharField(max_length=255, null=True, blank=True) 

管理

 list_display = 'sub_title', 

enter image description here

注:我希望数据库中有None,而管理面板上有一个自定义值。

谢谢


Tags: 对象方法模型nonetruetitlemodelsnot
2条回答

最好使用empty_value_display

empty_value_display
This attribute overrides the default display value for record’s fields that are empty (None, empty string, etc.). The default value is - (a dash).

class AuthorAdmin(admin.ModelAdmin):
    list_display = ('sub_title',)
    sub_title.empty_value_display = 'Not Available'

这是给django >= 1.9

list_display可以接受可调用,因此可以执行以下操作:

class MyModelAdmin(admin.ModelAdmin):
    list_display = ('get_sub_title',)

    def get_sub_title(self, obj):
        if obj.sub_title:
            return obj.sub_title
        else:
            return 'Not Available'

    get_sub_title.short_description = 'Subtitle'

docs提供了几个其他选项来提供可调用的。

相关问题 更多 >