Django - 用值替换“模型对象”
Posted
技术标签:
【中文标题】Django - 用值替换“模型对象”【英文标题】:Django - replace "model object" by the value 【发布时间】: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”吗?
感谢您的帮助:)
【问题讨论】:
使用__str__
方法
【参考方案1】:
使用模型类的__str__()
方法,
class Currency(models.Model):
...
# your code
def __str__(self):
try:
return self.Primary_Currency.Currency_Name
except AttributeError:
return self.Currency_Name
【讨论】:
以上是关于Django - 用值替换“模型对象”的主要内容,如果未能解决你的问题,请参考以下文章