私の Django プロジェクトには 2 つのモデルがあります。
- マッチ
- プレーヤー
Match には、プレイヤーを指す ManyToMany プロパティがあるため、複数のプレイヤーがマッチで競うことができます。プレーヤーのフル ネームの結合を使用して、「Richard Henry vs John Doe」のような有益なオブジェクト名を Django admin に返したいと思います。ただし、以下は失敗します。
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)