我正在 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' …
(分配帮助,对我很轻松)(我必须在不使用破坏性功能(setf)的情况下这样做)
使用常见的lisp,作为一些代码的一部分,我需要能够:
获取列表列表,比较2个元素的cdr,如果相等则忽略第一个元素,如果不相等则尝试将第一个元素与列表中的下一个未检查元素进行比较.
一些例子澄清:
((1 1 1)(2 1 1)(3 1 1)) - >((3 1 1))
((2 2 0)(4 1 1)(1 2 0)(3 0 1)(8 1 1)) - >((1 2 0)(3 0 1)(8 1 1))
(defun simplify2 (vari)
;If last term: stop
(if (equal (cdr vari) nil) vari
;If cdr of first and second term are equal...
(if (equal (cdar vari) (cdr (cadr vari)))
;Ignore the first term and continue with the rest of the list
(simplify2 (cdr vari))
;Otherwise (this …Run Code Online (Sandbox Code Playgroud)