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

Tom*_*ock 3 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
Run Code Online (Sandbox Code Playgroud)

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

admin.site.register(Gender)
Run Code Online (Sandbox Code Playgroud)

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

问题:

性别显示为数字(例如,如果我选择“男性”,则为 1)而不是“男性”。

注意我已经尝试向 GenderValues 添加一个标签,如下所示,但没有什么区别:

labels = {
    MALE: 'Male',
}
Run Code Online (Sandbox Code Playgroud)

你知道如何在管理区域中显示“MALE”或“Male”而不是 1 吗?

谢谢。

Ale*_*lex 6

使用_display()

def __str__(self):
    return self.get_gender_display()
Run Code Online (Sandbox Code Playgroud)

或者

使用list_display(在管理中)

class GenderAdmin(admin.ModelAdmin):

     list_display=['gender']

admin.site.register(Gender, GenderAdmin) 
Run Code Online (Sandbox Code Playgroud)