12
我是Django的新手,有一個應用程序模型和一個環境模型。環境具有作爲外鍵的應用程序。我知道我需要爲模型的人類可讀表示編寫一個unicode()方法,但是有沒有辦法從foreignkey對象獲取屬性以顯示爲字符串的一部分?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」,因此將Environment模型表示爲「NavSystem DEV1」比「DEV1」更有用。
太棒了,這正是我所需要的。謝謝! – MD6380 2013-02-22 01:47:01
如果我使用「點語法」來訪問一個外鍵對象,我得到:'NoneType'對象沒有屬性'name'。我用自己。。 。屬性「名稱」存在。 –
Timo
2014-09-28 08:54:50