我是Django的新手,拥有应用程序模型和环境模型。环境将应用程序作为外键。我知道我需要为模型的人类可读表示编写 unicode ()方法,但有没有办法从foreignkey对象中获取属性以显示为字符串的一部分?
class Application(models.Model):
app_id = models.IntegerField(primary_key=True)
app_name = models.CharField(max_length=200)
app_description = models.CharField(max_length=2000, blank=True)
def __unicode__(self):
return self.app_name
class Environment(models.Model):
app_id = models.ForeignKey(Application, db_column='app_id')
environ_id = models.IntegerField(max_length=6)
environ_name = models.CharField(max_length=200)
def __unicode__(self):
return '%s %s' % (application__app_name, self.environ_name)
我希望将环境模型表示为“app_name environ_name”。
更新: 我之所以要将环境模型显示为“app_name environ_name”,以便在管理页面上输入数据时用户更清楚。例如,app_name为“NavSystem”,environ_name为“DEV1”,因此将环境模型表示为“NavSystem DEV1”比仅使用“DEV1”更有用。
答案 0 :(得分:13)
您确实可以通过使用'dot'语法引用属性来实现。 这是你想要的:
def __unicode__(self):
return '%s %s' % (self.app_id.app_name, self.environ_name)