gpt4 book ai didi

django - 在 Django 中,您不能在 ManyToManyField 上使用字符串连接吗? ManyToMany 不只是一个列表吗?

转载 作者:行者123 更新时间:2023-12-03 18:24:57 25 4
gpt4 key购买 nike

我的 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)

    最佳答案

    另一种选择是:

    return " vs ".join(p.full_name for p in self.players.all())

    注意:很抱歉把这个带回来 - 掘墓人 :-)

    关于django - 在 Django 中,您不能在 ManyToManyField 上使用字符串连接吗? ManyToMany 不只是一个列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/582237/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com