我的 Django 项目中有两个模型:
- 匹配
- 播放器
Match 有一个指向玩家的 ManyToMany 属性,因此多个玩家可以在一场比赛中竞争。我想在 Django 管理员中返回一个信息丰富的对象名称,例如“Richard Henry vs John Doe”,通过使用玩家全名的连接。但是以下失败:
class Match(models.Model):
players = models.ManyToManyField(Player, verbose_name='Competitors')
def __unicode__(self):
return " vs ".join(self.players)
ManyToManyFields 不只是列表吗?为什么我不能加入他们?任何输入表示赞赏。这是我的播放器模型,以防有帮助:
class Player(models.Model):
full_name = models.CharField(max_length=30)
def __unicode__(self):
return "%s" % self.full_name
谢谢!
编辑:我刚刚发现我可以使用self.players.list_display
它作为列表返回。我不再吐出回溯,但由于某种原因,__unicode__
名称现在返回None
. 知道为什么会这样吗?
编辑2:更改代码:
class Match(models.Model):
players = models.ManyToManyField(Player, verbose_name='Competitors')
def __unicode__(self):
return " vs ".join(self.players.list_display)