python - 2个指向彼此的对象之间的Django ManyToManyField

标签 python django python-3.x django-models

在我的项目中,我有 2 个模型,它们具有相互指向的 ManyToMany 字段。在这种情况下,我有选举和候选人。这个想法是一个选举可以有多个候选人,一个候选人也可以是多个选举的一部分(一个“候选人”只是一个人)。

我有以下内容:

项目/选举/模型.py

from candidates.models import Candidate

class Election(models.Model):
    candidates = models.ManyToManyField(Candidate)
    ...

项目/候选人/models.py

from elections.models import Election
    elections = models.ManyToManyField(Election)
    ...

当我尝试运行任何命令(makemigrations、runserver 等)时,我在 Election 和 Candidate 之间出现循环依赖,这导致崩溃。作为编码实践,我在不同的应用程序中拥有模型。

Should I:

  1. Move both models to one app and one file

  2. Not have the models pointing to each other (how would I then accomplish my goal?)

  3. Do something different

最佳答案

不需要这样做。多对多字段已经是双向的。只需在一侧 定义它,然后使用反向关系。

关于python - 2个指向彼此的对象之间的Django ManyToManyField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54153588/

相关文章:

python - 比较 2 个数据框并找到匹配的行

python - 为什么我不能使用 Django 管理应用程序的资源

python - 缓冲区 dtype 不匹配,预期为 'SIZE_t' 但得到 'long long'

Python:使模块对 TestRunner 可见的正确方法是什么?

python - csv 模块返回第一列的 BOM

python - 如何通过单项从字典中获取单值?

python - 在 Python 中运行批量同步并行模型 (BSP)

python - 如何使用函数运行脚本? (反复)

python - 来自 manage.py 的数据库错误 : "TypeError: invalid postgreSQL type: bigint"

python - 如何在 ptpython 控制台中读取历史记录?