Django,多表继承有那么糟糕吗?

2024-04-11

这并不是 django 特有的。

一罐模型

Place (with location, name, and other common attributes)
 - Restaurant  (menu..)
 - ConcertHall  (hall size..)
  1. 在两个单独的表中,让每个表保存它们需要的所有字段。 (在django世界中,这称为抽象继承)
  2. 在三个表中,其中一个包含公共字段,另外两个有自己的唯一字段。 (django中的多表继承)

本书作者强烈建议不要使用多表继承。

假设您想根据位置查询地点并对结果进行分页(它不必是位置,可以是我们要过滤的任何其他常见属性)

我可以看到如何使用多表继承来实现它。

从地点 LEFT OUTER JOIN“餐厅”中选择 ( restuarant.id=place.id) LEFT OUTER JOIN “音乐厅” on ( Concerthall.id=place.id) 其中...按距离排序

用抽象继承来实现可行吗?


根据Django 文档:模型继承 https://docs.djangoproject.com/en/1.8/topics/db/models/#model-inheritance:

您必须做出的唯一决定是您是否希望父模型本身成为模型(具有自己的数据库表),或者父模型是否只是仅通过子模型可见的公共信息的持有者。

我认为这两种可能性都只是工具,同样是好的工具,这仅取决于您的用例是否合适。当然,这两种方法都需要考虑特定的事情,并且从概念上讲,有时多表继承可能更难以理解,但除此之外,这个主题就会变得固执己见。

如果两个模型都需要一个查询集,那么您考虑多表继承而不是抽象模型是合乎逻辑的,因为否则您将需要将两个查询集合并为一个,最有可能通过使用列表来实现相关答案 https://stackoverflow.com/questions/431628/how-to-combine-2-or-more-querysets-in-a-django-view建议,但你肯定会失去 ORM 功能。

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

Django,多表继承有那么糟糕吗? 的相关文章

  • 获取 django 的本地时区

    我有一个mysqlDATETIME存储在系统时间 UTC 中的值 我需要将其转换为 django 中的本地时区 这是我目前拥有的 value in mysql timestamp 2013 02 01 22 48 45 settings p
  • 在 uwsgi 应用程序中运行子进程

    我正在编写一个 Django 应用程序 它需要执行长时间的异步任务 最初的想法是从执行该工作的视图启动一个子流程 并在另一个视图中监视进度 当应用程序通过以下方式启动时 这个想法运行良好manage py runserver 但是当它在 u
  • pyPDF通过django合并并显示为httpresponse

    我在合并 pyPDF 逻辑以将两个 pdf 文件合并到我的 django 站点时遇到问题 我编写了在本地服务器上的 python 文件中运行时用于合并文件的代码 但我需要明确识别要合并的文件 from pyPdf import PdfFil
  • 如何将自定义 CSS 添加到脆皮表单?

    我正在尝试在脆皮表单的帮助下为我的网站创建一个响应式表单 我没有使用引导程序 我想将自定义 CSS 添加到脆皮表单以匹配我的整个网站 HTML
  • django自定义模板标签中的访问请求

    我在 myapp extras py 中的代码 from django import template register template Library register inclusion tag new userinfo html d
  • 将 Django 模型映射到外部 API

    上下文 我有一个外部 API 提供数据并允许发布新数据或修补现有数据 API 响应示例 response requests get http api band 4 print response json id 4 name The Beat
  • Python UTF-8转换问题

    在我的数据库中 我存储了一些 UTF 8 字符 例如 名称 字段中的 通过 Django ORM 当我读到这个时 我得到了类似的东西 gt gt gt p name u xce xb1 gt gt gt print p name 我本来希望
  • ModuleNotFoundError:没有名为“模型”的模块

    我有一个非常简单的 django 应用程序 我试图将其部署到 heroku 但它不断崩溃 在我的本地机器上一切正常 但在 Heroku 上却不行 这是我收到的错误 切到相关部分 File app hello admin py line 4
  • 如何从序列化器字段订购 Django Rest Framework 查询集?

    我如何订购 DjangoQuerySet来自序列化器字段 由于字段太复杂 我无法订购QuerySet using annotate我也无法将值存储在模型中 Edit 串行器 class DrinkListModelSerializer se
  • django 管理站点导航侧边栏搞砸了

    我最近在我的项目中添加了一个包并做了一个pip freeze gt requirements txt然后 然后我做了pip install r requirements txt到我的本地 它添加了一个侧边栏 I did a pip inst
  • Django 的登录代码

    谁能给我一些带有模板代码的示例代码来创建 Django 登录 Thanks 包含示例登录模板在文档中 https docs djangoproject com en stable topics auth default module dja
  • 数据库、表和列命名约定? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 每当我设计数据库时 我总是想知道是否有命名数据库中项目的最佳方法 我经常问自己以下问题 表名应该是复数吗 列名应该是单数吗 我应该为表或列添加前
  • 如何:SQL 还是 NOSQL?

    我还没有遇到过这个问题 但这就是我的想法 非常肤浅和简单化恕我直言 如果您有键值类型的存储 并且所有访问都是键查找 请使用 NOSQL 解决方案 如果您想要基于值 和子值 进行查找或者有一些更复杂的东西 例如联接 您会选择关系解决方案 事务
  • 无法安装 psycopg2 Ubuntu

    试图为 django 项目准备好服务器 但我在设置 postgres 时遇到了一些问题 我正在遵循本指南 https jee appy blogspot com 2017 01 deply django with nginx html ht
  • 在 django 中创建“历史”类型模型的最佳方法是什么?

    我想为我的 Django 应用程序创建一个类似于 Django 管理员的 最近操作 的功能 以便存储其他模型的历史信息 例如 假设我有两个模型 分别称为 Book 和 Author 我想要第三个模型来存储信息 例如由谁以及何时对模型中的给定
  • 如何隐藏 django-admin 中的某些字段?

    class Book models Model title models CharField null True type models CharField author models CharField 我在 models py 中有一个
  • 没有 django_site 这样的表

    我正在关注以下文档django disqus http django disqus readthedocs org en latest installation html configuring your django installati
  • 使用信号时出现 django TransactionManagementError

    我有一个与 django 的用户和 UserInfo 一对一的字段 我想订阅用户模型上的 post save 回调函数 以便我也可以保存 UserInfo receiver post save sender User def saveUse
  • django模板中获取用户信息

    从 django 模板获取用户信息的最佳方法是什么 例如 如果我只想 如果用户已登录 则显示 欢迎 用户名 否则 显示登录按钮 我正在使用 django 注册 身份验证 当前 Django 版本的替代方法 if user is authen
  • django管理员登录后重定向到另一个页面

    我正在 Django 中制作一个自定义管理页面 我不想重新发明轮子 因此想使用 Django 管理登录表单让员工登录并随后将他们重定向到 my url 但是 我无法找到在 admin 成功登录后将用户重定向到自定义网址的方法 因为我偶然发现

随机推荐

  • Android 版 usbmon

    我想分析我的设备的 USB 通信 SGS4 我到处都看到需要配置 usbmon 并将其编译到内核中 Afaik 这个模块没有内置在android linux系统中 我在编译内核方面没有太多经验 但如果有必要 我会这样做 您能说出这样做的步骤
  • 使用 LINQ 简化 foreach 循环(在每次迭代中选择两个对象)

    给定以下接口和两个类 public interface IMyObj int Id get set public class MyObj1 IMyObj public MyObj1 int id Id id public int Id ge
  • 如何将自定义排序应用于数组?

    我想以自定义的方式对数组进行排序 示例是学生的班级水平 sortBy Junior Senior Freshman Sophomore function classlevel 理想情况下 排序应返回 Freshman Sophomore J
  • geom_密度匹配geom_histogram binwitdh

    我想在 ggplot2 中的分布条形图上添加一条线以显示平均分布 但遇到了麻烦 像这样的 ggplot 调用 ggplot x aes date received geom histogram aes y count binwidth 30
  • 组件在react-router-4中匹配空值

    我正在尝试迁移到使用 React Router 4 但在理解其逻辑时遇到了一些困难
  • 是否有在基于 DDD 的分层架构中的模型层和数据访问层之间使用 LINQ 的建议模式

    我一直在读蒂姆 麦卡锡的书关于 NET 中的 DDD 的精彩书籍 http www amazon co uk NET Domain Driven Design Solution Programmer dp 0470147563 但在他的示例
  • 在 C#/.NET 中持久存储设置/变量

    好吧 这是一个全新的问题 所以请原谅我 存储变量以使它们持久且可恢复的最佳方法是什么 我有一个小型应用程序 它使用大约 10 个变量 字符串和小数 作为设置 目前 我将它们全部转换为字符串 如果需要 将它们放入数组中并将数组序列化为文件 如
  • 纯android原生隐藏导航栏

    我看过关于通过java隐藏android应用程序导航栏的文章和文章 然而 我想知道的是如何通过纯 android c 本机活动应用程序删除全屏应用程序 游戏 的导航栏 根本没有 JAVA Android 清单中的全屏可隐藏顶部栏 但导航栏保
  • AV Foundation 相机预览图层被放大,如何缩小?

    我当前使用的应用程序的主要功能是使用 Zxing 库连续扫描 QR 条形码 http code google com p zxing http code google com p zxing 对于连续帧捕获 我用来初始化 AVCapture
  • 什么是用于关闭屏幕键盘的 Mobile Safari 事件?

    我想运行一个 html body animate scrollTop 0 0 每当我的 iPad Web 应用程序中的屏幕键盘关闭时 我尝试过 blur 但如果用户直接通过屏幕键盘关注下一个或上一个字段 则会出现问题 关闭键盘是否会触发任何
  • 如何访问docker的HyperKit创建的VM?

    适用于 Mac 的 Docker https docs docker com docker for mac 使用由以下命令创建的 Linux VMHyperKit https github com docker HyperKit 用于在 M
  • 使用 SQLite 查找查询中行的差异

    我有一个SQLite包含各种产品价格的表 它是一个快照表 因此包含 5 分钟间隔的价格 我想编写一个查询 该查询将返回每件商品从一行到下一行的价格差异 这些列是 id 自动增量 record id 产品的 id 价格 该时间点的价格 时间
  • 如何在“Project Navigator”面板上突出显示 XCode 4 中打开的文件?

    由于一个项目可以在 项目导航器 面板上显示的数十个目录 过滤器 中包含数百个文件 因此有时很难查找当前在编辑器中打开的文件 例如 当我从一个文件跳转到另一个文件时 通过 CMD 单击 等 有没有办法在 项目导航器 面板上自动选择当前打开的文
  • 如何在 angular-cli 构建中包含自定义文件?

    回复 Angular2 2 0 0 Angular cli v1 0 0 beta 11 webpack 8 如何告诉 angular cli 在构建时将 src assets 中的文件包含在 dist 的根目录中 我们部署到 Window
  • 使用 amazon ec2 监控生产服务(tomcat、MSQL 和 apache)

    目前我有一个服务器 Amazon EC2 实例类型 通过AWS控制台 我们可以监控我们的实例 服务器 CPU利用率 磁盘读取等 有什么方法可以监控我的应用程序服务 比如 tomcat mysql apache 等 基本上 每当tomcat
  • 如何在android中检查当前互联网连接是否可用

    我也想离线执行我的应用程序 所以我需要检查当前互联网连接是否可用 谁能告诉我如何检查 android 中的互联网是否可用 给出示例代码 我尝试使用下面的代码并使用模拟器进行检查 但它不起作用 public boolean isInterne
  • 在 R 中的插入符序列函数中使用“ROC”度量的问题

    我有一个包含两个类的不平衡数据集 因此我认为我可以使用 ROC 作为指标 而不是使用 Accuracy 来使用 caret 包调整 R 中的模型 我正在尝试不同的方法 例如 rpart rf 等 我认为我们可以提取概率并使用 ROC 作为决
  • 从 vx_image 设置和获取数据

    我有两个vx image s src and dst 我需要从src vx image并进行一些操作并将其设置为dstvx 图像 vx image src vx image dst 我找不到执行此操作的正确文档 我可以知道该怎么做吗 谢谢
  • 如何在atom feed中显示商品照片?

    我想为 Atom feed 中的每个项目显示一张照片 我在条目中使用了这个结构
  • Django,多表继承有那么糟糕吗?

    这并不是 django 特有的 一罐模型 Place with location name and other common attributes Restaurant menu ConcertHall hall size 在两个单独的表中