How to display the text value of an enum field?
django
Solution
use `_display()`
def __str__(self):
return self.get_gender_display()
or
Use `list_display` (in admin)
class GenderAdmin(admin.ModelAdmin):
list_display=['gender']
admin.site.register(Gender, GenderAdmin)
Problem
I am using `django_enumfield` My model looks like this: ``` 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 ``` I have exposed this model in the admin area as follows: ``` admin.site.register(Gender) ``` I can then go to the admin area and add a gender. Problem: The gender appears as the number (e.g. 1 if I choose 'Male') instead of "MALE". Note I have tried adding a label to GenderValues like this but it makes no difference: ``` labels = { MALE: 'Male', } ``` Do you know how I can display "MALE" or "Male" in the admin area instead of 1? Thank you.