Django 双向ManyToMany - 如何防止在第二个模型上创建表?

2024-03-09

我有两个模型,每个模型都有一个共享的 ManyToMany,使用 db_table 字段。但是如何防止syncdb 尝试为第二个模型创建共享表呢?

class Model1(models.Model):
    othermodels = ManyToManyField('Model2', db_table='model1_model2', related_name='model1_model2')

class Model2(models.model):
    othermodels = ManyToManyField('Model1', db_table='model1_model2', related_name='model2_model1')

它在我的开发环境中运行得很好,因为一些表是在我全部构建时零碎创建的。但是从空数据库中,syncdb 会抛出: _mysql_exceptions.OperationalError:(1050,“表'model1_model2'已经存在”)

第二个模型的字段中是否缺少一个标志以防止重复创建表?或者我只是这样做完全错误?


我还找到了这个解决方案,它对我来说非常有效:

class Test1(models.Model):
    tests2 = models.ManyToManyField('Test2', blank=True)

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

Django 双向ManyToMany - 如何防止在第二个模型上创建表? 的相关文章

随机推荐

  • 什么是合适的数据结构和数据库模式来存储逻辑规则?

    前言 我没有规则引擎 构建规则 建模规则 实现规则数据结构等方面的经验 因此 我不知道我在做什么 也不知道我下面的尝试是否偏离了基础 我试图弄清楚如何存储和处理以下假设场景 为了简化我的问题 假设我有一种游戏类型 用户购买一个对象 其中可能
  • 将 Dictionary 序列化为 BSON 时出现 BsonSerializationException

    我最近搬到了新的 MongoDB C 驱动程序 v2 0 https www nuget org packages MongoDB Driver 2 0 0来自已弃用 v1 9 https www nuget org packages mo
  • 如何在 try catch 语句中重新请求输入

    string l Console ReadLine try int Parse l catch FormatException Console WriteLine Invalid input Please enter 1 2 or 3 正如
  • 在python中将字典的字典写入csv

    我有一本字典 我想将其写入 csv 我的字典看起来像 dict object1 time1 value1 value2 time2 value3 value4 object2 time1 value5 value6 time2 value7
  • 使用 boost 序列化抽象类时出错

    我正在尝试序列化我的数据结构 以便将它们写入 TCP 套接字 到目前为止我发现我的问题是序列化 我什至尝试使用 BOOST SERIALIZATION ASSUME ABSTRACT T 但我找不到任何与我的程序类似的工作示例以及如何正确实
  • Numba 和 numpy 数组分配:为什么这么慢?

    我最近使用 Cython 和 Numba 来加速进行数值模拟的 python 的小片段 起初 使用 numba 进行开发似乎更容易 然而 我发现很难理解 numba 何时会提供更好的性能 何时不会 意外性能下降的一个例子是当我使用该函数时n
  • @Entity 和 @Table 中的名称属性

    我有疑问 因为 Entity 和 Table 中都有 name 属性 例如 我允许 name 属性具有相同的值 Entity name someThing Table name someThing 我也可以为同一个班级使用不同的名字 Ent
  • 如何使用java从cucumber中的场景大纲中获取场景名称

    假设我有一个测试用例 例如 Scenario Facebook login test GIVEN I am a Facebook user WHEN I enter my user name password THEN login shou
  • 从完整 URL 获取域名

    假设有人输入这样的 URL http i imgur com a b c query value query2 value 我想返回 imgur com not i imgur com 这是我现在拥有的代码 sourceUrl parse
  • PHP 中的 AES/CBC/PKCS#5 加密算法

    我正在尝试使用 表单集成 方法将 SagePay 支付网关集成到网站中 基本上 表单集成方法的工作原理是在网页中插入表单 并在选择表单的 提交 按钮时将信息发布到 SagePay 的服务器 在将信息发送到 SagePay 的服务器之前 必须
  • 如何在xcode中链接glew

    我无法将 glew 与 xcode 链接 我有 glew 库位于 usr local lib libGLEW dylib 当我在命令行中编译文件时 g usr local lib libGLEW dylib framework OpenGL
  • 通过同一程序集的反射生成代码

    我已经开始涉足 T4 一开始相处得很好 但后来遇到了一个实际上非常明显并且可能无法解决的问题 但也许有一种方法我只是缺乏知道或看到的经验 给定以下课程 public class T4Test CodeActivity protected o
  • 无法连接,因为目标机器主动拒绝 127.0.0.1:2382

    我正在尝试连接 SSAS 引擎 SQL Server Denali 但失败并出现以下错误 无法建立连接 因为目标计算机主动拒绝它 127 0 0 1 2382 SSAS 服务在网络服务帐户下运行 SQL 浏览器服务在本地系统帐户上运行 你运
  • 仅使用 Yocto/bitbake 快速重建设备树?

    因此 每次修改设备树时 我通常会更改自定义配方中的 dts 并重建映像 重建需要很长时间 因为它会重建整个内核 然后需要构建镜像 最后部署到目标设备 我是否缺少任何仅重建设备树的技巧 UPDATE 我已将 g0hl1n 的答案标记为正确答案
  • 面板数据中汇总回归模型的模型预测

    我正在尝试生成一个预测模型 在该模型中 我每年都会进行多次汇总回归 基于前几年 从而允许系数随时间变化 这在提供的示例数据中可能没有意义 但在我的示例中实际上是这样做的 这是我到目前为止的想法 我将代码调整为 plm 包中的可重现示例 数据
  • 不同文化信息之间的日期时间转换

    我想在国家 地区之间创建不同的转换 并且我正在使用 C 我正在尝试将日期时间转换为另一个日期时间 格式为 dd mmm yyyy CultureInfo ci CultureInfo CreateSpecificCulture langua
  • seq2seq 中的 TimeDistributed(Dense) 与 Dense

    鉴于下面的代码 encoder inputs Input shape 16 70 encoder LSTM latent dim return state True encoder outputs state h state c encod
  • 在 Maven 中设置注释处理器生成的源目录

    我正在尝试将使用注释处理器生成源的构建移动到 Maven 我尝试按如下方式配置 maven compiler plugin
  • Angular6 - 读取文本/纯文本的响应正文

    我正在执行注册操作 当用户成功注册时 我会在后端返回他的 ID 例如 105 当注册失败 用户已存在 时 我返回 USER EXISTS 我已经在 Postman 上检查了请求 响应正文是正确的 在这两种情况下 我都会返回 纯文本 文本 但
  • Django 双向ManyToMany - 如何防止在第二个模型上创建表?

    我有两个模型 每个模型都有一个共享的 ManyToMany 使用 db table 字段 但是如何防止syncdb 尝试为第二个模型创建共享表呢 class Model1 models Model othermodels ManyToMan