在Django admin中显示字段的存储值以供选择

时间:2017-11-07 16:34:16

标签: python django django-admin

我有一个Django模型可供选择:

class Project(models.Model):
    A = 'A'
    B = 'B'
    PROJECT_TYPE_CHOICES = (
        (A, 'Plan Type A'),
        (B, 'Plan Type B'),
    )
    project_type = models.CharField(max_length=1, choices=PROJECT_TYPE_CHOICES)
    name = models.CharField(max_length=500)

    def __str__(self):
        return self.name

在此模型的管理列表视图中,我想显示存储的值:'A''B',而不是选项的“显示”值:'Plan Type A'或{{1 }}。当我的'Plan Type B'看起来像这样:

admin.py

我得到了选择的显示值(我猜管理员试图提供帮助并为我或其他人调用class ProjectAdmin(admin.ModelAdmin): list_display = ('project_type', 'name') pass admin.site.register(Project, ProjectAdmin) )。如何强制它返回存储的值?

1 个答案:

答案 0 :(得分:0)

你可以使用callable。将其添加到模型中并添加

  def project_type_value(self):
      return ("%s" % (self.project_type))
  project_type_value.short_description = 'Project type'

在管理员中:

class ProjectAdmin(admin.ModelAdmin):
    list_display = ('project_type_value', 'name')

admin.site.register(Project, ProjectAdmin)