gpt4 book ai didi

python - Django:使用 related_name 添加引用同一个表的 2 个外键导致 NameError - 未定义给定相关名称的值

转载 作者:行者123 更新时间:2023-12-02 03:15:35 25 4
gpt4 key购买 nike

我正在 Django 中创建一个模型,其中包含 2 个主要类 - 比赛类和玩家类。每场比赛都需要从数据库中获取 2 名球员,因此我在表中包含了外键,但这些外键会发生冲突,因为我在比赛类别中引用了球员类别两次。

我尝试使用 related_name 字段来防止这些冲突,如下面的代码所示。虽然此示例似乎适用于此处的其他用户,但我收到名称错误,指出 related_name 中声明的名称未定义。更改 related_name 的值会更改错误内容。

class Player(models.Model):
p_pub_date = models.DateTimeField('date published')
p_username = models.CharField(max_length=20)
p_tag = models.CharField(max_length=20)
p_league_id = models.ForeignKey(League, on_delete=models.CASCADE)
p_elo_rating = models.IntegerField(default=1200)
p_glicko_rating = models.IntegerField(default=1200)
p_character = models.CharField(max_length=20)
p_country = models.CharField(max_length=50)

class Match(models.Model):
m_pub_date = models.DateTimeField('date published')
m_tournament_id = models.ForeignKey(Tournament, on_delete=models.CASCADE)
m_player0_id = models.ForeignKey(Player, on_delete=models.CASCADE, related_name=m_player0_id)
m_player1_id = models.ForeignKey(Player, on_delete=models.CASCADE, related_name=m_player1_id)
m_result = models.IntegerField(default=0)

当我运行 makemigrations 时,我的 models.py 文件中出现错误: m_player0_id = models.ForeignKey(Player, on_delete=models.CASCADE, related_name=m_player0_id)NameError:名称“m_player0_id”未定义

提前致谢

最佳答案

你需要使用引号

m_player0_id = models.ForeignKey(Player, on_delete=models.CASCADE, related_name='m_player0_id')
m_player1_id = models.ForeignKey(Player, on_delete=models.CASCADE, related_name='m_player1_id')

我也会选择一个不同的相关名称,例如 'matches_as_p1' 'matches_as_p2' 也许

关于python - Django:使用 related_name 添加引用同一个表的 2 个外键导致 NameError - 未定义给定相关名称的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56234750/

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