我發現了幾個答案,看起來像我的問題,但不是。也許我在這裏錯過了一些東西,但是這裏有一些;Foreignkey返回對象,而不是self.name
我想讓一個模型返回默認的鏈接到的外鍵項目的名稱。
這是連接表
class CharacterTrait(models.Model):
id = models.IntegerField(primary_key=True) # AutoField?
id_character = models.ForeignKey(Werewolfcharacter, null=True, db_column = 'id_character')
id_trait = models.ForeignKey(Trait, null=True, db_column = 'id_trait')
class Meta:
managed = False
db_table = 'character_trait'
def __unicode__(self):
return self.id_trait
這是性狀表
class Trait(models.Model):
id = models.IntegerField(primary_key=True) # AutoField?
id_traittype = models.ForeignKey(Traittype, null=True, db_column = 'id_traittype')
name = models.CharField(max_length=32)
class Meta:
managed = False
db_table = 'trait'
def __unicode__(self):
return self.name
所以,當我要問的返回值,當我呼籲CharacterTrait得到我期望返回鏈接特質的名稱。但是,當我去管理員,我得到這個錯誤;
Exception Type: TypeError
Exception Value: coercing to Unicode: need string or buffer, Trait found
但是,當它發現特質,不應該返回Trait.name?顯然,它不,否則我不會問這個問題。
另外,當我在CharacterTrait中這樣做時;
高清的Unicode(個體經營): 回報self.id_trait.name
我回來這一點;
[<CharacterTrait: Homid>]
這是我想要的,但只有字符串「Homid」,而不是作爲模型。
怎麼樣''回報self.id_trait.name''? –