Django - заменить «объект модели» на значение - PullRequest
1 голос
/ 11 октября 2019

У меня есть модель, которую Валюта определяет ниже:

class Currency(models.Model):

    """
    Currency Model
    Defines the attribute of Currency
    """

    class Meta:
        verbose_name        = "Currency"
        verbose_name_plural = "Currencies"
        ordering            = ['Currency_Name']

        def __str__(self):
            return self.Currency_Name

    Currency_Date           = models.DateTimeField(auto_now_add=True)
    Currency_Date_Update    = models.DateTimeField(auto_now=True)
    Currency_Name           = models.CharField(max_length=3, unique=True)
    Is_Secondary_Ccy        = models.CharField(max_length=1, choices=Y_N_BOOLEAN)
    Primary_Currency        = models.ForeignKey('self', on_delete=models.DO_NOTHING, null=True)   # to refer to itself
    Primary_Factor          = models.IntegerField(default=1)
    Currency_Name_Reuters   = models.CharField(max_length=3)

Модель связана с самим собой столбцом "Primary_Currency"

В моем администраторе (изображение ниже) я вижу связанные, но если я открою раскрывающийся список, ярлык не будет удобным для пользователя "Объект валюты (0) и т. д ..."

enter image description here

Могу ли я получитьЗначение "Currency_Name" для "Primary_Currency"?

спасибо за вашу помощь:)

1 Ответ

2 голосов
/ 11 октября 2019

Использование __str__() метод класса модели,

class Currency(models.Model):
    ...

    # your code

    <b>def __str__(self):
        try:
            return self.Primary_Currency.Currency_Name
        except AttributeError:
            return self.Currency_Name</b>
...