小编Har*_*ley的帖子

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

我正在 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' …

python django

2
推荐指数
1
解决办法
1907
查看次数

Common Lisp:删除具有相同cdr的元素

(分配帮助,对我很轻松)(我必须在不使用破坏性功能(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)

lisp list common-lisp

0
推荐指数
1
解决办法
475
查看次数

标签 统计

common-lisp ×1

django ×1

lisp ×1

list ×1

python ×1