我正在 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)
Run Code Online (Sandbox Code Playgroud)
当我运行 makemigrations 时,我的 models.py 文件中出现错误: m_player0_id = models.ForeignKey(Player, on_delete=models.CASCADE, related_name=m_player0_id) NameError: name 'm_player0_id' is not Defined
提前致谢
你需要使用引号
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')
Run Code Online (Sandbox Code Playgroud)
我也会选择一个不同的相关名称,比如'matches_as_p1' 'matches_as_p2'也许
| 归档时间: |
|
| 查看次数: |
1907 次 |
| 最近记录: |