如何在 __str__ 方法中获取 TextChoice 枚举值

Rah*_*hul 5 python django django-models

这就是我尝试定义模型的方式models.py

from django.db import models

class Country(models.Model):
    class Countries(models.TextChoices):
        US = 'US', 'United States'
        EP = 'EP', 'Europe'
        IND = 'IN', 'India'

    name = models.CharField(max_length=2,
                        choices=Countries.choices,
                        blank=True)

    def __str__(self):
        return getattr(self.Countries, self.name)
Run Code Online (Sandbox Code Playgroud)

str调用仅给出两个字母的国家/地区代码。我如何获得完整信息,例如US (United states)US, United States

当我手动添加国家/地区时,admin它会显示全名。它一定是从某种方式得到的。

JPG*_*JPG 6

使用get_FOO_display()(Django Doc)方法

class Country(models.Model):
    # other fields
    def __str__(self):
        return "{value} ({display_value})".format(value=self.name, display_value=self.get_name_display())
Run Code Online (Sandbox Code Playgroud)