将Django模型父类添加到现有模型中以实现多表继承

2024-03-08

The Django 文档 https://docs.djangoproject.com/en/1.9/topics/db/models/#multi-table-inheritance使用此示例来演示多表继承:

from django.db import models

class Place(models.Model):
    name = models.CharField(max_length=50)
    address = models.CharField(max_length=80)

class Restaurant(Place):
    serves_hot_dogs = models.BooleanField(default=False)
    serves_pizza = models.BooleanField(default=False)

如果我最初像这样构建 Restaurant 类:

class Restaurant(models.Model):
    name = models.CharField(max_length=50)
    address = models.CharField(max_length=80)
    serves_hot_dogs = models.BooleanField(default=False)
    serves_pizza = models.BooleanField(default=False)

然后在创建了一堆 Restaurant 对象之后,我意识到使用 MTI 会更好,有没有一种好的方法可以在事后创建父 Place 类并迁移数据?


  1. 添加新模型,但保留旧模型。进行迁移.

  2. Write a 自定义迁移复制数据Restaurant模型到NewRestaurant model.

  3. 如有必要,请更改其他模型中的任何外键字段Restaurant to NewRestaurant and 进行迁移.

  4. 如有必要,请在应用程序中的所有位置进行更改Restaurant类用于使用NewRestaurant class.

  5. 删除旧的餐厅模型并进行迁移.

  6. 将新餐厅模型重命名为Restaurant所以在新结构下一切都会恢复正常。进行迁移.

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

将Django模型父类添加到现有模型中以实现多表继承 的相关文章

随机推荐

  • QThread finish() 信号永远不会发出

    所以我有一个有2个槽的工作类 StartWork 和StopWork StartWork 一个运行无限循环 它只是不停地读取和读取相机输入 而StopWork 方法只设置一个bool变量设置为 false 因此 StartWork 内的循环
  • 如何从 url 中删除 returnurl?

    当用户想要访问需要登录的页面时 我想从地址栏中删除 returnurl blabla 因为我试图在登录后将用户重定向到静态页面以进行一些选择 我怎样才能做到这一点 这就是本质表单验证 我猜你正在使用 也就是说 当您访问需要身份验证的页面时
  • Angular 4.0 + Spring boot + Spring Security:TemplateInputException:解析模板“登录”时出错

    我正在将 Spring Security 集成到我的第一个 Angular 项目中 我关注了许多文章和示例 包括this https github com kamalber spring boot angular4 authenticati
  • org.apache.velocity.exception.ResourceNotFoundException

    我正在使用速度引擎模板在 struts1 和 hibernate 配置中进行邮件发送 我收到错误 org apache velocity exception ResourceNotFoundException当我尝试发送邮件时 我已经包含了
  • Jetty 中的传输速度较慢,在特定缓冲区大小下采用分块传输编码

    我正在调查 Jetty 6 1 26 的性能问题 Jetty 似乎使用Transfer Encoding chunked 并且根据所使用的缓冲区大小 本地传输时可能会非常慢 我创建了一个小型 Jetty 测试应用程序 其中包含一个演示该问题
  • 未捕获(承诺中)DOMException:超出配额

    我正在尝试查看离线状态演示 https serviceworke rs offline status demo html从下面的链接 我得到 DOMException 超出配额 https serviceworke rs offline s
  • Java 的 java.util.concurrent 包在 .NET 中的等价物是什么?

    我有 Java 背景 我想了解有关 Net 和 C 中并发性的更多信息 有没有类似Java的concurrent utils包的东西 最接近的是 NET 4 0 中的新线程功能 也称为并行扩展 NET 的现有功能 即 3 5 及更早版本 优
  • 同一 data.frame 中的分组/重新编码因素

    假设我有一个像这样的数据框 df lt data frame a letters 1 26 1 26 我想将 a b 和 c 重新 因子为 a 我怎么做 一种选择是recode 包中的函数car require car df lt data
  • PHP中下个月日期时间戳的最后一天? [复制]

    这个问题在这里已经有答案了 我正在使用以下函数来获取当前时间戳 created timestamp date Y m d H i s 但是我如何获得下个月最后一天的时间戳 例如 如果是 9 月 15 日 则获得 10 月 31 日 包括所有
  • 如何为 Chart.js (chartjs.org) 中的所有图表类型添加标签/图例?

    Chart js 的文档提到了 图例模板 但没有提供此类图例的资源或示例 这些如何显示呢 您可以在图表选项中包含图例模板 legendTemplate takes a template as a string you can populat
  • Electron 中渲染器和主进程的区别

    我最初认为 Electron 中的渲染器进程是在类似 chrome 的环境中沙箱化的 这意味着你所能做的就是弄乱 DOM 但是 我最近了解到您可以访问文件系统 运行子进程并获取其输出 以及导入您想要的任何其他节点模块 如果是这样的话 主进程
  • 如何使用 Javascript 将数组拆分为基于值的多个数组?

    我有一个数组 我想根据值 完成 将其拆分为多个数组 当我找到它时 我拆分数组 我的代码是 var input urlGettingF BROKEN aquaHTTP 404 BROKEN url1HTTP 404 ok urlok Fini
  • 提高 html canvas mousemove 图像蒙版的性能

    我有一个画布 正在绘制图像并进行剪辑以创建图像被显示的效果 我的代码工作正常 我尝试使用 debouce 方法和 rAF 来提高画布渲染性能 但我只看到了很小的收益 如果有的话 我怀疑我迭代 x 和 y 坐标数组的方式可能是问题所在 当将数
  • Flutter - JSON 和时间序列图表

    我试图在时间序列图表中显示一些数据 我找到了一个例子 https google github io charts flutter example time series charts simple html https google git
  • 找到一条经过最大点数的线[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 创建机器人时出错

    我在创建机器人时遇到错误 我正在尝试部署一个网络应用程序机器人 指定资源组的名称及其位置后 我单击 创建 之后机器人部署过程开始 但最终会出现错误 MsaAppId MsaAppId 已在使用中 我可以做什么来成功部署基本机器人 这是一周内
  • 按一列分组,为每对列选择一列中最小值的行

    很难说清楚的问题 这是我想做的一个例子 我开始的一个例子 set seed 0 dt lt data table dr1 d rnorm 5 dr1 p abs rnorm 5 sd 0 08 dr2 d rnorm 5 dr2 p abs
  • 使用 Python 更改控制台窗口的位置 (Windows)

    是否可以通过python改变Windows控制台的位置 如果没有 有什么解决方法吗 我不知道您是否需要任何具体信息 但以防万一 我使用的是 Windows 8 1 64x Python 3 5 0 控制台是通过Popen主要目标是将其移动到
  • 如何使用用例关系 - uml

    嘿伙计们 我一直在研究 UML 并且正在尝试设计问题的用例图 假设我的应用程序包含以下内容 两个要求 创建团队 创建玩家 这是这笔交易 用户可以创建一个球队 创建球队后可以为该球队创建球员 非必需 但在这个应用程序中有多个用户 一个用户可以
  • 将Django模型父类添加到现有模型中以实现多表继承

    The Django 文档 https docs djangoproject com en 1 9 topics db models multi table inheritance使用此示例来演示多表继承 from django db im