如何让两个模型互相引用 Django

2024-04-18

我有以下代码:

class Game(models.Model):
    title = models.CharField(max_length=50)
    summery = models.CharField(max_length=500)
    key = models.IntegerField()
    pin = models.CharField(max_length=12)
    complete = models.BooleanField()
    invite_sent = models.DateTimeField()
    on = models.ForeignKey(Member, blank = True) #<----


class Member(models.Model):
    email = models.CharField(max_length=100)
    color = models.CharField(max_length=11)
    game = models.ForeignKey(Game) #<----

“on”外键链接到其中一名成员(轮到他了)。游戏的所有成员都将其“游戏”外键设置为他们所在的游戏。问题是 Django 不会让我在声明之前引用一个类,并且因为我不能同时声明它们......

编辑:为了澄清事情,这里有一个例子。如果有五个成员玩一场游戏,则所有五个成员都将拥有该游戏的外键。另一方面,游戏对于轮到的特定成员有一个外键。


The ForeignKey 字段的 Django 文档 https://docs.djangoproject.com/en/4.0/ref/models/fields/#django.db.models.ForeignKey states:

如果需要在尚未定义的模型上创建关系,可以使用模型的名称,而不是模型对象本身。

所以在你的情况下,那就是:

class Game(models.Model):
    # Other fields...
    on = models.ForeignKey('Member', blank = True)

class Member(models.Model):
    # Other fields...
    game = models.ForeignKey(Game)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让两个模型互相引用 Django 的相关文章

  • 如何使用 Python 在 Cloud9 中声明端口

    我刚开始使用Cloud9 IDE http c9 io c9 到目前为止 除了一些小问题之外 它看起来很棒 我从文档中看到 要启动一个简单的node js http服务器 您必须传递process env PORT来代替常规端口 例如 80
  • 多个 aiohttp Application() 在同一进程中运行?

    Can two aiohttp web Application 对象在同一进程中运行 例如在不同的端口上 我看到了一堆 aiohttp 代码的示例 例如 from aiohttp import web app web Application
  • 如何将 Pandas DataFrame 中加载的嵌入转换为 Gensim 模型?

    我有一个 DataFrame 其中索引是单词 并且有 100 个带有浮点数的列 这样对于每个单词 我将其嵌入为 100d 向量 我想将我的 DataFrame 对象转换为gensim 模型对象 https radimrehurek com
  • numpy float:算术运算比内置函数慢 10 倍?

    我对以下代码的计时非常奇怪 import numpy as np s 0 for i in range 10000000 s np float64 1 replace with np float32 and built in float 内
  • Pandas如何按列按间隔分割数据框

    我有一个巨大的数据框 其中有一个名为的日期时间类型列dt 数据框排序基于dt已经 我想根据以下内容将数据帧拆分为多个数据帧dt 每个数据帧包含行1 hr range Split dt text 0 20160811 11 05 a 1 20
  • 基于多列值的重复键的两个大型 Pandas DataFrame 的条件合并/连接 - Python

    我来自 R 老实说 这是使用 R data tables 在一行中完成的最简单的事情 并且对于大型数据表来说 该操作也相当快 但是我真的很难用Python实现它 前面提到的用例都不适合我的应用程序 当前的主要问题是 Python 解决方案中
  • ValueError:BitVect 的长度必须相同(rdkit)

    我正在计算 2 个摩尔之间的结构相似性概况rdkit 当我在 google colab 中运行程序时 rdkit 2020 09 2 python 3 7 程序运行良好 当我在 PC 上运行时出现错误 rdkit 2021 03 2 pyt
  • 带参数的多重继承

    我已经阅读了很多有关继承的内容 但我似乎无法理解为什么这会给我一个错误 使用Python 2 7 x class A object def init self value super A self init print First s va
  • Python脚本仅在Docker中产生僵尸进程

    我有相当复杂的设置 Luigi https github com spotify luigi https github com spotify luigi https github com kennethreitz requests htm
  • pandas 左连接并更新现有列

    我是 pandas 的新手 似乎无法让它与合并功能一起使用 gt gt gt left gt gt gt right a b c a c d 0 1 4 9 0 1 7 13 1 2 5 10 1 2 8 14 2 3 6 11 2 3 9
  • 如何将Python列表分成不等长的子列表?

    我试图将用逗号分隔的元素列表划分为长度不等的块 我该如何划分它 list1 1 2 1 list2 1 1 1 1 1 1 1 2 1 1 1 3 1 1 1 4 list1 包含的元素是我希望将 list2 分成的块的大小 你可以结合以下
  • 如何通过 Python 的请求使用 FTP

    是否可以使用requests与 FTP 站点交互的模块 requests获取 HTTP 页面非常方便 但当我尝试使用 FTP 站点时 我似乎遇到架构错误 我有什么遗漏的吗requests允许我执行 FTP 请求 还是不支持 对于像我一样得到
  • 如何在 Tensorflow 中计算 R^2

    我正在尝试在 Tensorflow 中进行回归 我不确定我计算 R 2 是否正确 因为 Tensorflow 给出的答案与sklearn metrics r2 score有人可以看看我下面的代码 让我知道我是否正确地实现了图中的方程 谢谢
  • 在鼻子测试中打印不同的长描述以及测试名称 python

    我正在使用命令 nosetests test py 运行时仅打印描述的第一行 我想要完整的描述以及测试名称 我怎么做 测试 py 文件 import unittests class TestClass unittest TestCase d
  • Python 3 中的“raw_input()”和“input()”有什么区别? [复制]

    这个问题在这里已经有答案了 有什么区别raw input and input 在 Python 3 中 不同之处在于raw input Python 3 x 中不存在 而input 做 其实 老raw input 已更名为input 和旧的
  • pip install 找不到包,但 pip search 找到

    我想安装hdbcli https pypi org project hdbcli 包 SAP HANA 连接器 当我搜索时pip正在找到该包 但是当我想安装它时 pip找不到包裹 指定当前包也不会产生任何结果 pip install hdb
  • 定制 odoo 中的会计和财务模块?

    我正在研究会计和财务模块 我想做一些修改 例如隐藏字段和隐藏税收图表 有人能帮我吗 请告诉我隐藏左侧菜单项 税表 的程序 我也想知道view id隐藏发票表中的税费和底部税费 更新 请让我知道隐藏它们的外部 ID 我无法找到它们 因为它们链
  • 从列表中删除元素的最佳方法

    我想知道从列表中删除元素的最佳方法 有效方法是什么 有功能很少 https docs python org 3 tutorial datastructures html more on lists由Python提供 some list re
  • 每个 start_url 已抓取多少个项目

    我使用 scrapy 抓取 1000 个 url 并将抓取的项目存储在 mongodb 中 我想知道每个网址找到了多少个项目 从 scrapy 统计数据我可以看到 item scraped count 3500但是 我需要分别对每个 sta
  • Pandas - 使用其他列值作为列名选择列

    我有一个包含一列的数据框 我们称之为 名称 names 具有其他列的名称 我想添加一个新列 该列的每一行都有基于 名称 列中包含的列名称的值 Example 输入数据框 pd DataFrame from dict a 1 2 3 4 b

随机推荐

  • 使用 jquery post for mvc 3 在部署时不起作用

    所以我有这个 MVC 3 应用程序 它有一个下拉列表 我用它通过 jquery 填充 div 它在本地工作正常 但当我将其部署到服务器时 它重定向不正确 这是我的 jquery ddlCategoryMain change function
  • 将 mm/dd/yyyy 转换为 yyyymmdd (VB.NET)

    有什么方法可以将日期格式 dd mm yyyy 转换为 yyyymmdd 格式吗 例如从 25 07 2011 到 20110725 在 VB NET 中 日期本身不have固有的格式 您可以将字符串解析为DateTime通过解析它dd M
  • 如何在bash函数中显示数字到小数点后两位

    我应该如何获取以百分之秒为单位的数字并将其以秒为单位显示到小数点后两位 我不确定遵循 dTime 函数的伪代码 但我认为您会得到我的目标 function time echo date N 10000000 function dTime e
  • 用于存储用户位置历史记录的 MongoDB 架构

    我想使用 MongoDB 来存储我的用户位置历史记录 当然要征得他们的同意 我看到以下三个选项 为所有用户创建一个位置集合 每个文档都有一个 userId 字段和一个时间字段 这两个字段都将被索引 该集合中的行数可能会增长到超过 1 亿行
  • 绑定到 Date() 对象时如何格式化 input[time] 的值

    我将变量绑定到时间类型的输入字段 但显示的格式错误 它显示时间如下 08 54 30 088我真正需要的是这样的格式 08 54 我尝试使用过滤器设置输入字段的值 value datetime date date HH mm 但我的编辑说我
  • 为什么Windows和Linux的标准库函数名称不同?

    我正在将 Windows 库移植到 Android 使用 GNU 标准 C 库选项 libstdc v3 VC 和 GNU 库之间似乎存在许多命名差异 例如 stricmp叫做strcasecmp instead unlink叫做unlin
  • 使用 Sharepoint 事件接​​收器在文档库中创建文件夹

    我使用以下代码在文档库中创建一个文件夹 该事件被触发并执行到我的代码的最后一行 没有任何问题 但是 该文件夹未在我的文档库中创建或列出 public override void ItemAdded SPItemEventProperties
  • 如何在javascript中处理(® ´ © ¿ ¡ ° À ) 特殊字符?

    我需要开发一个 javascript 函数 不允许字符串中出现特殊字符 问题是IE8无法识别字符串中的特殊字符 并且在使用indexOf 方法时返回 1 处理这些特殊字符的正确方法是什么 只要您的所有编码都是正确的 您是否将文件另存为 UT
  • numpy 的花式索引是如何实现的?

    我正在对 2D 列表和 numpy 数组进行一些实验 由此 我提出了三个我很想知道答案的问题 首先 我初始化了一个 2D python 列表 gt gt gt my list 1 2 3 4 5 6 7 8 9 然后我尝试用元组索引列表 g
  • 收到错误:WebSphere MQ 原因代码 2538?

    我在 Linux 上安装了 WebSphere MQ 和 WebSphere Message Broker 当我执行mqsicreateexecutiongroup我收到一条错误消息 BIP1046E 无法连接到队列管理器 无法连接到队列管
  • Laravel 5 强制使用 HTTPS 登录路由到 HTTP 的问题

    Laravel 版本 Laravel 5 4 30 我遇到一个问题 我的生产代码托管在通过 HTTPS 提供服务的负载均衡器后面的 AWS Elastic Beanstalk 上 当使用内置的 auth 特征和 make auth 控制器来
  • 在 Android 上将游戏资源下载到 SD 卡

    我正在开发一个安卓游戏必须下载一些assets to the SD card使应用程序的大小尽可能小 我正在考虑使用未压缩的zip文件来捆绑所有资产 客户的一个要求是protect尽可能多地使用这些资产 作为 apk 的一部分被认为是足够的
  • Android Twilio 视频通话,唤醒应用程序并带到前台

    我正在尝试使用 Twilio Video Call 提供本机视频通话体验 这是场景 人 AAA 称人 BBB BBB 没有打开应用程序 在后台或前台 应用程序处于终止状态 手机甚至可能被锁定 当来自 AAA 的电话到达时 应用程序将打开 并
  • 投影 - 将 3d 转换为 2d

    我有问题或者很好 我不知道如何将具有 x y z 值的 3d 点转换为 2d 点 我必须绘制投影 其中我确实有点的 x y z 值 但我不知道如何将它们转换为 2d 以便我可以将它们移动到我的轴上 我一直在浏览维基和谷歌 但是我不太确定应该
  • Networkx中的多层图

    我想创建一个多层图 如附图所示 通过连接用以下代码编写的两个图 使用networkx Graph g1 nx read edgelist sample txt nodetype str pos nx shell layout g plt f
  • 春季启动。如何禁用 JPA 有条件初始化

    如果可以完全禁用 JPA Stack 的初始化 我会很伤心 在某些情况下 我的应用程序是在无法访问数据库的环境中执行的 应用程序可以在应用程序级别上幸存下来 但从技术上讲 我在数据源的初始化方面遇到了一些异常 必须有某种方法来完全禁用 JP
  • scala 中的reduceLeft(或foldLeft)与reduceRight(或foldRight)

    我正在从 coursera 学习 scala 在里面reduceLeft and reduceRight描述如下 然后在下一张幻灯片上 老师说这个代码模式被抽象为reduceLeft 我的问题 我认为第一张幻灯片中的模式是reduceRig
  • 寻找包含当前节点的 jQuery find(..) 方法

    jQueryfind http api jquery com find 遍历方法不包括当前节点 它从当前节点的子节点开始 调用将当前节点包含在其匹配算法中的查找操作的最佳方法是什么 浏览文档并没有立即引起我的注意 对于 jQuery 1 8
  • Symfony2 php.ini

    当检查时app check php Symfony2说这个Configuration file used by PHP etc php5 cli php ini然而phpinfo 显示 Apache 正在使用 etc php5 apache
  • 如何让两个模型互相引用 Django

    我有以下代码 class Game models Model title models CharField max length 50 summery models CharField max length 500 key models I