Как получить значение перечисления TextChoice в методе __str__ - PullRequest
0 голосов
/ 06 января 2020

Вот как я пытался определить модели в 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)

str просто дает двухбуквенный код страны. Как получить полную информацию, такую ​​как US (United states) или US, United States

Когда я добавляю страну вручную в admin Отображается полное имя. Должно быть, это как-то получается.

1 Ответ

1 голос
/ 06 января 2020

Использование get_FOO_display() (Django Do c) метод

class Country(models.Model):
    # other fields
    def __str__(self):
        return <b>"{value} ({display_value})".format(value=self.name, display_value=self.get_name_display())</b>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...