问题标签 [multi-table-inheritance]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - 具有多表继承的父类上的Django post_save信号
在 Django 中,如果您有使用多表继承的模型,并且您为父类上的 post_save 信号定义了接收器,那么在保存子类的实例时是否会调用该接收器函数?
借用另一个问题的例子:
如果我做:
会echo_category
调用接收函数吗?
ruby-on-rails - Rails - Citier - 两级继承,子类不继承中间类属性
我正在尝试实现如下结构:GrandFather <- Father <- Son Using rails 和 gem citier。这个例子应该创建 2 个表来表示 3 个类:一个用于 Root 类(GrandFather)及其属性,另一个用于表示父类和子类(因为 Son 没有额外的属性)和父类的属性。
但是,如果我打开 rails 控制台并键入“Son.new”,则来自 GrandFather 的属性就在那里,但缺少来自父亲类的属性:
ruby-on-rails - has_one 通过多表继承和多态关联
在我目前正在 Rails 4.0.0beta1 下开发的项目中,我需要基于用户的身份验证,其中每个用户都可以链接到一个实体。我对rails有点陌生,这样做有一些麻烦。
模型如下:
我需要的是用户能够链接到代理机构或客户,但不能同时链接到两者(这两个是我将要调用的实体)。它可以完全没有链接,最多只有一个链接。
我寻找的第一件事是如何在 Rails 中进行多表继承(MTI)。但是有些事情阻止了我:
- 它不是开箱即用的
- 对于像我这样的新手来说,MTI 看起来有点难以实施
- 实施解决方案的 gem 似乎过时了,要么太复杂,要么不完整
- 宝石可能会在 rails4 下损坏,因为它们已经有一段时间没有更新了
所以我寻找另一种解决方案,我发现了多态关联。
从昨天开始,我就一直在研究这个问题,即使在Rails 多态 has_many :through和ActiveRecord、has_many :through 和多态关联的帮助下,我也花了一些时间让它工作
我设法使上述问题中的示例起作用,但花了一段时间,我终于遇到了两个问题:
- 如何将 user 中的关系转换为 has_one 关联并能够“盲目地”访问链接实体?
- 如何设置约束以使用户不能拥有多个实体?
- 有没有更好的方法来做我想做的事?
ruby-on-rails - 多表继承,不能从子类访问的列
更新:
将 table_name 更改为 self.table_name = 似乎已经说服 rails 使用正确的表。
但是,我现在遇到了这些奇怪的错误
原始问题:
我有一个模板和一个 Objekt:
但是当我这样做时,Objekt.new.attributes
在控制台中,它只列出Template
对象的属性,而不列出任何Objekt
.
上的每一列Template
也可以在 中使用Objekt
,但Objekt
还有 10 列(主要是标志)
这里发生了什么?为什么 rails 不把Objekt
班级挂在objekts
桌子上?
c# - 实体关系多重继承问题
我有这个实体模型:
我想要一个Customer
实体,它可以是 aPerson
或 an Organization
,但不能两者兼而有之。
到目前为止,我想出了一个客户实体,它同时指向组织和个人,但具有可为空的字段(意思是),这意味着与andGuid?
具有非强制性关系。就像是:Person
Organization
我正在使用实体框架 5,codefirst 方法,我还没有创建数据库。我想知道是否有更好的模型可以满足这个要求。
symfony - 多级继承映射与学说 2
我有三个“可寻址”实体(可以有一个地址):
交货点
客户
配送中心
每个可寻址实体也是可地理定位的(具有纬度和经度),但我有可地理定位但不可寻址的实体,例如 轨迹点和路线点(经纬度的有序序列)。
使用学说 2(使用 Symfony2 和 YAML 映射)实现这一目标的最佳方法是什么(请考虑性能,因为某些表可能有数百万行)?
我的问题是:解决这个问题的最佳方法是什么?映射超类?单表继承?多表继承?通过阅读教义的文档,我没有得到哪一个最适合这个。
如果这很重要,我正在使用 PostgreSQL。
django - Django 多表继承阻塞模型定义中泄漏的变量
Django 1.3回应:
Django 1.5回应:
我的第二个反应(在尝试将变量设为私有之后)是删除变量(这有效。)
列表推导在 Python 2 中泄露了它们的控制变量。Django禁止覆盖父字段属性,这似乎以某种方式涉及,因为 Django 1.5 有同样的问题。但是在这两种情况下,泄漏的属性名称_RebelliousChild__x
都没有在 Parent 上定义。
这里发生了什么?
PS 使用“list(x.name for x in Parent._meta._fields())”比“del x”更漂亮。请参阅前面提到的https://stackoverflow.com/a/4199355关于生成器不泄漏其控制变量的信息。
django - django:在多表继承/多态表中自动向下转换
我有这样的事情:
每当我有一个 Foo 对象时,子外键始终是 Base 的一个实例——我的理解是 Django 就是这样工作的。现在我已经向 Base 添加了一个 downcast() 方法(见上文)。我不介意对可能的派生类型进行硬编码。
我想要以某种方式自动将向下转换集中在 Foo 中。我将此多表继承添加到现有代码中,并且我一直在寻找代码真正需要向下转换的实例——因此我必须在代码中本地手动向下转换它。
我正在使用 django-polymorphic 包,但它给了我一些我不知道如何/也不想处理的副作用(比如我无法删除行 - 关于 opts.pk 的一些错误在查询集中没有深度代码。)
所以我想知道——在 __init__() 中放入一些东西(在调用基类 init 之后)可以吗?有没有我没有想到的副作用?从头开始创建新实例时,这似乎是个问题。
我应该重命名孩子吗?
从头开始创建 Foo() 时,这可能是一个问题。我不能说 Foo(child=c)。
有更好的方法吗?不是在寻找通用的多态解决方案/mixin——不是在尝试调试 django 并发现删除 django-polymorphic 修复了删除问题之后。
django - 模型继承 + django admin
我正在重用来自 cmsplugin_news 的 News 模型,只是在我的继承模型中添加了一些额外的字段。(多表继承,就像这里解释的那样。
在我的 admin.py 上,我正在扩展 NewsAdmin 以设置我自己的表单:
我在forms.py中定义的:
当我从 shell 控制台保存对象时,模型继承似乎运行良好。但是当我尝试从 django 管理员创建一个 MyNews 对象并将其链接到一个部门时,该字段不会被保存。或者至少这种变化没有在任何地方显示
我什么都看不懂,谁能帮帮我?非常感谢!
python - 如何允许用户使用 Django 编辑帖子?
在我的博客中,我决定允许用户编辑帖子(我使用的是 Django),但我不确定我的模型的正确实现是什么。使用多表继承作为我下面的代码是个好主意吗?我还想跟踪所有帖子,原件以及每个新编辑的内容。