问题标签 [django-related-manager]

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 回答
709 浏览

django - 相关对象查询 django rest framework

我有以下型号

我想获取所有STUser对象并获取它们的所有权限。

所以我想要的是抓住所有的VenuePermissions物体。并抓取每个场地的uservenue对象权限

我有两种方法可以做到这一点。使用VenuePermissions_set属性,STUser但是当它只是一个pk值时我如何抓住场地?

或者专注于VenuePermissions对象并从 pk 值中获取用户和场地,但如何?

我记得嵌套查询,我在浏览代码中做了一个。

这是一个例子:

我之前在序列化程序中完成了设置对象

示例序列化程序:

对此查询的任何帮助将不胜感激!

所以这就是我目前正在尝试的,如果可行,我将发布答案:

0 投票
0 回答
1039 浏览

django - 在相关对象中批量创建

我的应用中有 2 个模型 -

在 models/parent.py 我有 -

在 models/child.py 我有 -

我们可以使用父表引用对子表进行单次插入 -

有没有一种方法可以像普通的bulk_create那样批量插入相关表

0 投票
0 回答
24 浏览

python - 模型创建调用其相关的模型保存方法?

具有这些模型定义以及两者之间的关系:

我已经在 Car 模型上定义了 customsavedelete,因为当汽车实例被修改时,我必须执行一些额外的操作,特别是我需要使缓存无效。

我的疑问是:创建/更新/删除相关模型会调用这些自定义方法吗?

我会尽量说清楚:

显然是c1调用的创建,但是乘客Car.save实例的创建会p调用还是不调用?Car.save

从我的测试来看似乎是这样,但我想更确定这不仅仅是一个特定的案例,而且在 Django 模型处理周期中一直发生这种情况(我找不到关于此的特定文档)。

0 投票
1 回答
673 浏览

django - Django - 使用 ORM 的嵌套关系查询

因为我需要避免递归导入并将Group对象作为查询的起点(这就是我不能Action直接导入对象的原因。)

关系是Group-> Component-> ComponentVersion->Action

例如,Group.components.all()返回查询集中的所有组件。

另外[component.versions.all() for component in Group.components.all()]返回一个查询集列表,其结果是所有版本。随后,.actions.all()将返回理解中返回actions的每个查询集的所有查询集ComponentVersion

避免对数据库进行不必要的调用和提高可读性的最佳方法是什么?

0 投票
0 回答
312 浏览

django - Django 在表单中使用多对多

我有一个数据模型,我在其中使用手动中间表来处理 m2m 关系。基于 django 文档中的经典示例:

当我创建一个新组时,我还想指定谁将成为领导者,并且对于这种关系还指定他将在该组中演奏哪种乐器。

鉴于缺乏关于这个主题的文档,真正让我感到困惑的是如何处理表单中的这种关系。

这是我带来的表格:

正如 django 文档中所建议的那样,我正在手动实例化Leadership对象(请参阅 formsave方法)。

我无法解决的是如何instrument在表单编辑的情况下填充该字段。我尝试在 中执行此操作__init__:首先我检查我们是否处于“编辑”模式(实例有一个 pk)然后我获取相关Leadership对象(请参阅Group.get_leadership)并从中提取instrument并将其分配给fields["instrument"].initial.

这行不通。

我可以检查该initial值是否已设置,但是当我呈现表单时,会显示默认选择值(INSTRUMENT_CHOICES 的第一个值)。

我在这里想念什么?关于如何通过表单中的模型处理 m2m 是否有更好的方法或更好的文档?

0 投票
2 回答
1294 浏览

django - Django Rest Framework:只需获取 ManyToMany 关系的某些值

我正在使用 Django Rest Framework 来编写我的 API。我想将与 id (特别是 uuid)不同的值写入我的序列化程序。

让我先给你基本的设置。我有一个名为的模型House,其中包含 pk 和 uuid 等值。我有第二个模型Citizen,它也有一个 pk 和一个 uuid。House并且Citizen彼此之间存在多对多关系。

我想要一个序列化程序,它只返回一个它的公民数组。

这是我尝试(但失败)的无效伪代码:

此序列化程序引发错误:

但是在我的模型上House我已经明确了citizen = models.ManyToManyField(Citizen)

如果我只是不指定任何序列化程序而只是将公民留在字段数组中,我只会得到一个我无法使用的 PK 数组。

如何在此处获取 UUID 数组?

0 投票
1 回答
47 浏览

django - Django ForeignKey在同一个表中关于不同表中的相同属性

我的项目中有一个模型。

想象一下:match_user 是“Mete”,matched_user 是“Gizem”。match_user 也是 'Gizem' 而matched_user 是 'Mete' 我有 2 个表格行:

现在如果我想删除mete,只删除第一行。但我想删除 2 行。实际上我想在不同表中的同一位置有两个外键。我怎么能?是否可以。如果不可能,是否有任何解决方案可以满足我的需求。我也尝试了一些不同的方法:

但是一直有错误感谢您的回答:)

0 投票
1 回答
335 浏览

django - 没有对象的 Django ManyToMany 相关管理器返回 True

Django 1.9、Python 3.6、postgres 数据库

存在CalendarCalendarOwner,其中多对多关系在 中定义Calendar

当我调用与它相关联Calendar.calendar_method()的(s) 时,为 each 调用它,并按预期工作 - 根据我在那里的任何逻辑,我得到一个布尔值。 我认为它的工作方式是从所有方法调用中,如果至少有一个执行中断并且返回值为. 否则它将调用所有相关对象并最终返回。CalendarCalendarOwnerCalendarOwner.calendar_owner_method()CalendarOwner
TrueTrue
False

问题:为什么当我打电话Calendar.calendar_method()时没有CalendarOwner(s)与之相关联Calendar时从不调用CalendarOwner.calendar_owner_method()并且总是返回True。这是默认行为吗?

例子:

这是有道理的,因为没有CalendarOwner(s)与之相关联,Calendar根本CalendarOwners.calendar_owner_method()不会被调用。但为什么它返回 True 呢?有人可以指出我的文档吗?

我可以检查是否Calendar.calendar_owners.count()为零并返回False,但我想看看是否有更好的 Django 方法来做到这一点。

0 投票
1 回答
1360 浏览

django - Django - 使用通用 UpdateView 编辑多对多关系的双方

我有一个问题,是否可以使用通用 UpdateView 类来编辑多对多关系的“双方”。我在 models.py 中定义了以下类:

这些都是字典类型的表,用于存储我的应用程序的配置数据集。为了允许编辑字典,我使用简单的 UpdateViews:

这很好用,我得到了一个不错的多选,一切都很完美。但是,我希望能够从 SomeCategory 表的一侧编辑关系,因此我可以选择哪些 SomeClass 元素链接到某个 SomeCategory:

我尝试将related_name属性添加到 SomeCategory 模型,但这没有用。

有什么想法可以在不使用自定义 ModelForm 的情况下完成吗?

关键库版本:

PS:这是我在 stackoverflow 上提出的第一个问题,所以如果我的帖子缺少任何强制性元素,请告诉我。

0 投票
1 回答
1552 浏览

python - 查询 RelatedManager 对象

我有模型如

和我的admin.py阅读

我希望根据字段的特定值过滤 Model1f4

就像是

results = Model1.objects.filter(where f4 = "some_specific_value")

这旨在产生一个包含 Model1 实例的查询集,其中内联 Model2 将f4设置为some_specific_value

谢谢!