list_display.如何从选择中显示价值?

use*_*683 7 django django-admin

STATUS = (
    (1, "Sent"),
    (2, "Not send",),)

class Log(models.Model):
        status = models.CharField(max_length=255,choices=STATUS)
Run Code Online (Sandbox Code Playgroud)

管理

class LogAdmin(admin.ModelAdmin):
    list_display=['status']
Run Code Online (Sandbox Code Playgroud)

这个显示:

状态 - (leer)

如何显示状态 - 已发送或未发送?

Tho*_*rzl 17

只需使用:

class LogAdmin(admin.ModelAdmin):
    list_display=['get_status_display']
Run Code Online (Sandbox Code Playgroud)

Django文档:get_FOO_display


Kar*_*jux 7

(更新到django 1.8)最好是创建一个函数

def get_status(self, obj):
    return obj.get_status_display()

get_status.short_description = 'Status'
Run Code Online (Sandbox Code Playgroud)

将'get_status'放在list_display和Status中它将是admin列表中的列名.

  • 在django 1.8中,我必须在我的admin.py中使用以下代码:`def get_status(self,obj):return obj.get_status_display()` (2认同)