问题标签 [django-polymorphic]

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 投票
1 回答
37 浏览

python - 如何从多对多表中检索字段?

我需要从多对多查询中检索一个值。假设我有 3 个模型:Toy、Part 和 ToyParts

ToyParts 有一个名为“part_no”的字段。我需要能够得到这个的价值。

我试过使用:

这显然不起作用,因为 Part 没有名为“part_no”的字段

我也尝试过简单地使用:

但这会增加额外的查询。

part_no如果不直接查询 ToyParts ,我怎么能得到?

0 投票
0 回答
207 浏览

python - 在 Django 中找不到具有多态模型和表单的 updateview 的 URL

当用户单击按钮时,我试图在模式框中显示与另一个模型相关的所有模型。但是,更新视图无法按我希望的方式工作。我收到与基于类的视图(模型对象更新视图)相关的 URL 模式的未找到,而不是 200 OK

我尝试了几种方法,但下面是最新的一种。当我打印出 get_queryset (我已经覆盖)时,我得到了对象。我试图打印上下文 ['formset'],但似乎代码没有达到那么远。

我正在使用django-bootstrap-modal-forms 1.4.2来显示模型表单集,我正在使用django-polymorphic 2.1.2来处理模型的多态性。我使用这种方法的原因是: 1. 模型流和模型对象之间存在多对多的关系。2. 使用模态框可以使界面更简洁,而不是在同一页面上同时拥有模型流和模型对象。3. 我想让多态方法处理与模型流相关的对象。

models.py - 有两个主要模型是多态模型 ModelFlow 和 ModelObject 以及它们的子类。

forms.py - 我创建了基于 WebPageObject 和 LinkObject 的两个表单,它们都继承自 ModelObject(多态模型),然后我创建了一个多态模型表单集。

views.py - 在这个视图中,我使用了 ModelObject(一个多态模型)作为更新视图的模型。然后我创建了一个带有模型/表单对的 form_class

urls.py - 这是更新视图获取的 url。

模板

预期的结果应该是一个模态框,其中所有允许基于上下文 ['formset'] 中的查询集。此外,GET 应该是 200 OK。

但是,我收到此消息: Not Found: /useCaseExtract/Marvel-E-Store/UCModelUpdate/2/updateModelObject/319/ [15/Sep/2019 12:26:41] "GET /useCaseExtract/Marvel-E-Store/UCModelUpdate/2/updateModelObject/319/ HTTP/1.1" 404 5459 并且没有显示模式框。

0 投票
0 回答
684 浏览

django - Django:无法删除损坏的 PolymorphicModel 实例

我在使用django-polymorphic的 Django 项目(托管在 Heroku 上)中有这个模型设置:

问题是,我设法创建了 aProduct和 a的损坏实例Book。当我有一个实例Product,我想将其转换为一个实例时,就会发生这种情况,Book并且在精神错乱的时刻做了这样一件愚蠢的事情:

现在,我知道这很愚蠢,并且引发了各种错误。我的问题是,现在我遇到了一个p无法删除的实例。调用时p.delete()出现以下错误:

此外,如果我尝试做

我犯了同样的错误。如果我创建包含此Book实例的任何 QuerySet,它也会出现,这是一个问题。

我的问题是:如何规避此问题并删除损坏的实例?

0 投票
1 回答
777 浏览

python - Django-PolymorphicModels - 删除实例时出错

这是我第一次尝试“PolymorphicModel”,也许我做错了什么,或者我正在尝试做一些不受支持的事情。有没有办法解决这个问题?

我的简化模型:

如果我创建必要的实例,

所以最后我得到:

完成后,compound_q.delete() 我得到:

我的模型有问题吗?其他一切似乎都按预期工作。谢谢阅读 :)

0 投票
1 回答
230 浏览

django - 是否可以为 ForeignKey 关系添加父级到子级?

假设我有一个名为“parent”的 ForeignKey 字段,其 related_name 为“children”:

为什么我只能将孩子添加到父母,但如果我尝试将父母添加到孩子,我会收到错误消息?

所以这有效:

但这不会:

我每次都必须添加到父母的孩子字段吗?有没有办法添加到孩子的父母呢?是否有任何理由为什么添加到孩子的父母不起作用或不应该使用?

在这种情况下(如果相关),我对何时/如何使用“_set”也有些困惑。因此,按照Django 的多对一示例的格式,以下内容也不适用于我:

0 投票
0 回答
21 浏览

django - 检查 django 多态模型上是否存在某个多对多外键

因此,为了创建对象模型,我必须首先查看供应商是否具有从 BusinessModel、WarehouseModel 或 StoreModel 到 django 多态的多对多类型关系

我的主要想法是检查通过 BusinessOrderModel 连接到 Order 的 BusinessModel、通过 StoreOrderModel 连接到 Order 的 StoreModel 或直接连接到 Order 的 WarehouseModel 是否具有指向我们想要的文章的多对多关系的 FK通过 POST 请求订购。

这是我的序列化程序:

这是我的观点:

0 投票
0 回答
59 浏览

python - 大师班中具有唯一属性的Python继承

我有一个小问题。

CPF = 美国 SSN。

一个人可以是学生,董事会成员,学生将来可以是老师。

当我用cpf注册一个人时,没关系。但是当我尝试将同一个人注册为学生时,由于唯一字段,python 显示错误。我该如何解决这个问题?

形式:

意见:

模板 Student_form:

模板 BoardMember_form:

0 投票
0 回答
82 浏览

python - Django 可写嵌套序列化器和 django-polymorphic

假设我有以下模型:

使用以下序列化程序:

我有一个模型,它与一个或一个模型DataQuery具有 1:1 映射。如果我序列化已经用 a 创建的 a ,我会得到以下(正确的)输出:AnimalEntityHumanEntityDataQueryHumanEntity

POST对我的端点的调用也有效,DataQuery并且底层HumanEntity的创建没有任何问题。

我没有故意id在内部Entity序列化程序中包含 an,因为这与此 API 的使用者无关。对他们来说,只需要知道查询可以包含动物或人类。

现在我想更新我的DataQuery实例并将底层更改HumanEntityAnimalEntity. 因此PUT,我如下:

而现在,奇怪的事情发生了。没有什么。否AnimalEntity已创建,并且HumanEntity也没有更改(如果我HumanEntity通过输入不同的名称来更改,则名称将正确更改)。似乎可写嵌套DataQuerySerializer并没有完全理解应该关闭底层实例(即删除旧的,创建新的)。

我在这里逐步浏览了相关代码。由于我不想pk在嵌套模型序列化程序中包含 a,因此检索了现有pk的。HumanEntity不知何故(我想这是由于PolymorphicSerializer)这是从正确的序列化程序中完成的,AnimalEntitySerializer. 但是由于传递的字段与底层模型不兼容,所以什么也没有发生。

OneToOneField如果我通过将 1:1 映射到DataQuery类似的位置来反转 1:1 映射:

它有点工作,但不是真的。每次我进行更新(即使没有更改任何内容),都会创建一个新的HumanEntityor AnimalEntity。但是序列化程序尊重 的变化PUT并创建正确的模型。(不过,旧的并没有被删除)

我期待什么? 执行 a 时PUT,我想更新现有实例,或者,如果我决定切换实体的类型,则创建正确的实例并删除另一个实例。我不确定是否on_delete=CASCADE有任何帮助(无论在哪一边),因为我真正需要的是一个显示If the related field is null, delete myself.

我完全知道我可以(可能很容易)通过覆盖 的update方法来解决这个问题DataQuerySerializer,但是我一开始就不需要了WriteableNestedSerializer

也许我忽略了一些东西,任何帮助将不胜感激。

0 投票
1 回答
46 浏览

python - 通过使用 Django 多态模型的关系

我正在尝试在模型中使用多态表和非多态表之间的直通关系RankedAthlete

这不起作用,因为在我创建一个时RankedAthlete期望 aChoiceBlank和 a被提出。ValueError相反,如果我将选项替换为ChoiceAthlete.

Django-polymorphic文档没有提到我的用例,它不受支持吗?有没有办法使这项工作?

0 投票
0 回答
22 浏览

django - 通过查询或 ORM 访问 Django 多态模型时的不同结果

我已经使用Django 的模型多态性一段时间了,但我突然遇到了一些问题,这让我质疑我对它如何工作的基本理解。

这基本上是我如何设置的。

长话短说,乔布斯可以随身携带数据,目前有两种类型:资格和列表。资格本身可以指向一个列表。

我突然注意到在管理站点中,一个特定的 Qualification 实例没有设置它的目标列表,所以我输入了一些打印语句并发现了这一点。

当我以不同的方式访问明显相同的数据时,我怎么会得到不同的结果?

我的数据库是否损坏或者我缺少一些基本的东西?