问题标签 [django-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.

0 投票
0 回答
237 浏览

django - 代理=True的模型上的Django调用方法

所以我有一个简单的模型继承,除了子模型是一个代理。问题是,在我看来,如果我这样做:

然后我打电话

我收到一个错误,因为set_siblings需要一个参数(the relation_type)。模型内部的方法Concept被调用。如果我打印concept.__class__.__name__,我会看到Concept. 那么如何正确调用模型set_siblings内部呢?Term

这是文档,但这并不能帮助我澄清问题。

模型.py

0 投票
2 回答
886 浏览

python - Django - 是否可以在中间表中为目标模型使用继承的 ForeignKey?

我正在使用 django 1.4,我有以下模型:

当我通过执行以下操作在视图中创建Newsletter对象时:

我可以看到所有Newsletter对象和NewsletterReceiver对象都已创建。使用ipythonif 我查询新创建的一切都很好user,但是如果我从实例中查询接收者,那么 django 会抱怨我不明白的事情:newsletterNewsletterReceiverNewsletter

这是因为ForeignKey目标模型是继承的吗?是否有解决方法或者我应该重构模型?

0 投票
1 回答
475 浏览

django - 如何从 django 应用程序“继承”

我编写了一个 django 应用程序,它提供了一个 OpenStreetMap 并让用户通过添加和删除地标进行交互。这些地标具有某些属性。属性保存在地标模型中。

对于另一个项目,我想重用该应用程序,但具有不同的地标属性。我认为最简单的方法是仅更改应用程序中的地标模型并更改模型以满足我的需求。

有没有更通用的方法?我可以使用一个地标类,它有Meta一个abstract=True. 然后我可以通过添加新字段来扩展继承的类。但是我仍然需要直接使用该应用程序。

我更愿意将带有我的地标信息的类传递给地图应用程序,然后在需要信息时“指向”地标信息类。

有没有标准的 django/python 方法来做到这一点?有更好的方法吗?

0 投票
1 回答
220 浏览

python - Django模型的多表继承不起作用

我想按照 Elmasri & Navathe 的“数据库系统基础”中的描述对数据库设计进行层次结构。

这意味着当我有一些为许多类/表共享的信息时,我可以将它放在主父表中,并使用主表 ID 作为子表中的外键,这是一种弱实体。

我尝试使用抽象和多表继承(最后一个不允许我指定 OneToOneField,不知道在 django docs 哪里可以找到它)。

我的例子就在这里(每个班级一张桌子):

我的目标是实现在 DB 中创建一个 Alumn,只需两句话:

并让这两行插入两行:一行用于 Person,另一行用于 Alumn。上面这段代码中的 alumnId 属性可以省略,因为它总是与 personId 相同(我告诉过你,就像一个弱实体)。

我是 django 的初学者,但我查看了文档并用 abstract=True in Person 证明了一些事情,但没有成功我想现在我应该弄乱init构造函数来构建超类,然后构建儿童班。

我不知道选择的正确路径,但绝对不想改变数据库设计。请帮忙。

提前致谢。

0 投票
1 回答
38 浏览

django - Django - 继承

我有继承问题:

我做:
m = Member(id_scribe=..., id_pj=...)
c = Collab(m)
c.save()
和那里:
TypeError: int() 参数必须是字符串或数字,而不是 'Member '

我不明白...我在网上研究并没有找到一种解决方案...

0 投票
2 回答
1277 浏览

django - Django 按属性子类过滤查询集

我有一个Slug模型来识别Page对象。ABlogPost继承自Page。我想找到一个BlogPost给定的Slug名字,但没有其他Page对象。

编辑:添加模型

我想我追求的是这样的:

我知道InheritanceManagerselect_subclasses(BlogPost)但我的查询是 for Slug,所以我看不到这有帮助,除非我用我的 slug 查询Page并寻找BlogPosta (这是更好的方法吗?)。

而不是过滤器,我可以遍历所有 slug 结果并手动检查每个结果。似乎这样做的方法是检查Slug' 页面是否有任何BlogPost属性。最多只会有一些蛞蝓冲突需要筛选,而且很少有。

有没有办法让数据库查询为我做过滤器?

0 投票
0 回答
1658 浏览

django-models - Django REST Framework 嵌套序列化程序和 select_related

我有以下设置:我正在使用 django-rest-framework 和 django-model-utils InheritanceManager 来自动获取子对象。

我的问题是select_related无法正常工作。当我调用检索操作时,我在调试工具栏中看到两个查询而不是一个。第一个是与位置表的预期内部连接。但随后对位置表有一个额外的查询:

所以我select_related用来连接表,但序列化程序以某种方式对数据库进行了额外的查询。

如果我不使用其余框架并直接获取对象,

它作为例外工作,并且只访问数据库一次。

有谁知道如何解决这个问题?

0 投票
2 回答
819 浏览

django - Django 模型继承和 select_related

我在模型中有以下内容,当我使用 select_related 和模型继承时遇到了奇怪的行为:

楷模:

所以A有一个C的外键,B继承自A。现在我想查询A向下转换到B并读取与C的关系。为了最小化我使用的sql查询select_related

因为我使用select_related它应该只产生一个查询。但不知何故,信息在向下转换期间丢失了,我开始进行 sql 查询:

所以在第一个查询中看起来不错。但令我惊讶的是,我收到了第二个查询。这是 django 的 ORM 中的错误还是我做错了什么?

0 投票
1 回答
283 浏览

django - Django 模型 db_table 继承/注入

为了报告的目的,我正在 Django 和 AWS Redshift 之间进行集成。到目前为止,感觉 django 的表现并不好。我遇到的一个问题是我必须为每个模型设置一个替代类型 id,而不是 AutoField 类型,因为它在 redshift 中不受支持。到目前为止一切都很好,但我想如果我已经为我要使用的所有模型做一个超类,我会在途中更改表名,我不喜欢 django 提供的默认名称它是数据库中的模型(app_name__model_name)。我设法为每个子模型做到了(见下文)。但我想在 BaseModel 中动态声明它,每个子模型将根据它的类名接收它自己的表名。

这样的事情甚至可能吗?

0 投票
1 回答
36 浏览

django - 从给定 django 继承和 m2m 链接到父级的模型的子级查询

在我的模型中,我有一个运动,它有一个 m2m 链接到锻炼。我也有 WorkoutPlan 和 LogBook,它们是 Workouts 的类型。WorkoutPlan 是存储理想锻炼的地方。日志是用户存储他们实际完成的锻炼的地方。他们还可以将日志链接到锻炼计划,以表明实际表现与最初的理想计划相关联。

对于给定的练习,我想提取该练习所在的所有锻炼计划。

我意识到锻炼列表包括 WorkoutPlans 和 LogBooks,因为锻炼附加到 Workout,而不是专门附加到 WorkoutPlans 或 LogBooks。

我如何提取仅隶属于 WorkoutPlans 的锻炼?