Django 管理员 list_display 项的自定义值
Custom value for list_display item on Django admin
在一个模型中,我有一个字幕字段,如果给定的 object.
字段不存在任何值,则用 None
填充该字段
有什么方法可以将值显示为自定义值(例如 Not Available
或 Not Applicable
而不仅仅是显示 (None)
字段
sub_title = models.CharField(max_length=255, null=True, blank=True)
管理员
list_display = 'sub_title',
PS:我想在数据库中 None
,而自定义值只在管理面板上。
谢谢
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 提供了几个其他选项来提供可调用对象。
如果用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
的
在一个模型中,我有一个字幕字段,如果给定的 object.
字段不存在任何值,则用None
填充该字段
有什么方法可以将值显示为自定义值(例如 Not Available
或 Not Applicable
而不仅仅是显示 (None)
字段
sub_title = models.CharField(max_length=255, null=True, blank=True)
管理员
list_display = 'sub_title',
PS:我想在数据库中 None
,而自定义值只在管理面板上。
谢谢
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 提供了几个其他选项来提供可调用对象。
如果用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