我发现了几个答案,看起来像我的问题,但不是。也许我在这里错过了一些东西,但是这里有一些;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''? –