Reputation: 950
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.
Upvotes: 3
Views: 5787
Reputation: 6047
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)
Upvotes: 6