【问题标题】:Django - replace "model object" by the valueDjango - 用值替换“模型对象”
【发布时间】:2020-02-08 17:52:22
【问题描述】:

我有一个模型货币定义如下:

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) 等...”

我可以拥有“Primary_Currency”的值“Currency_Name”吗?

感谢您的帮助:)

【问题讨论】:

标签: django model admin


【解决方案1】:

使用模型类的__str__()方法,

class Currency(models.Model):
    ...

    # your code

    def __str__(self):
        try:
            return self.Primary_Currency.Currency_Name
        except AttributeError:
            return self.Currency_Name

【讨论】:

    猜你喜欢
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 2020-04-01
    相关资源
    最近更新 更多