如何显示枚举字段的文本值?

时间:2016-10-18 10:42:29

标签: django

我正在使用django_enumfield

我的模型看起来像这样:

class GenderValues(enum.Enum):
    NONE = 0
    MALE = 1
    FEMALE = 2
    BOTH = 3

class Gender(models.Model):
    gender = enum.EnumField(GenderValues, default=GenderValues.NONE)

    def __str__(self):
        return self.gender

我已在管理区域中公开此模型,如下所示:

admin.site.register(Gender)

然后我可以转到管理区域并添加性别。

问题:

性别显示为数字(例如,如果我选择的话是男性'男性')而不是" MALE"。

注意我已经尝试过像这样向GenderValues添加标签,但它没有区别:

labels = {
    MALE: 'Male',
}

你知道如何展示" MALE"或者"男性"在管理区域而不是1?

谢谢。

1 个答案:

答案 0 :(得分:2)

使用_display()

def __str__(self):
    return self.get_gender_display()

使用list_display(在管理员中)

class GenderAdmin(admin.ModelAdmin):

     list_display=['gender']

admin.site.register(Gender, GenderAdmin)