问题标签 [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.
django - 相关对象查询 django rest framework
我有以下型号
我想获取所有STUser
对象并获取它们的所有权限。
所以我想要的是抓住所有的VenuePermissions
物体。并抓取每个场地的user
和venue
对象权限
我有两种方法可以做到这一点。使用VenuePermissions_set
属性,STUser
但是当它只是一个pk
值时我如何抓住场地?
或者专注于VenuePermissions
对象并从 pk 值中获取用户和场地,但如何?
我记得嵌套查询,我在浏览代码中做了一个。
这是一个例子:
我之前在序列化程序中完成了设置对象
示例序列化程序:
对此查询的任何帮助将不胜感激!
所以这就是我目前正在尝试的,如果可行,我将发布答案:
django - 在相关对象中批量创建
我的应用中有 2 个模型 -
在 models/parent.py 我有 -
在 models/child.py 我有 -
我们可以使用父表引用对子表进行单次插入 -
有没有一种方法可以像普通的bulk_create那样批量插入相关表
python - 模型创建调用其相关的模型保存方法?
具有这些模型定义以及两者之间的关系:
我已经在 Car 模型上定义了 customsave
和delete
,因为当汽车实例被修改时,我必须执行一些额外的操作,特别是我需要使缓存无效。
我的疑问是:创建/更新/删除相关模型会调用这些自定义方法吗?
我会尽量说清楚:
显然是c1
调用的创建,但是乘客Car.save
实例的创建会p
调用还是不调用?Car.save
从我的测试来看似乎是这样,但我想更确定这不仅仅是一个特定的案例,而且在 Django 模型处理周期中一直发生这种情况(我找不到关于此的特定文档)。
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
。
避免对数据库进行不必要的调用和提高可读性的最佳方法是什么?
django - Django 在表单中使用多对多
我有一个数据模型,我在其中使用手动中间表来处理 m2m 关系。基于 django 文档中的经典示例:
当我创建一个新组时,我还想指定谁将成为领导者,并且对于这种关系还指定他将在该组中演奏哪种乐器。
鉴于缺乏关于这个主题的文档,真正让我感到困惑的是如何处理表单中的这种关系。
这是我带来的表格:
正如 django 文档中所建议的那样,我正在手动实例化Leadership
对象(请参阅 formsave
方法)。
我无法解决的是如何instrument
在表单编辑的情况下填充该字段。我尝试在 中执行此操作__init__
:首先我检查我们是否处于“编辑”模式(实例有一个 pk)然后我获取相关Leadership
对象(请参阅Group.get_leadership
)并从中提取instrument
并将其分配给fields["instrument"].initial
.
这行不通。
我可以检查该initial
值是否已设置,但是当我呈现表单时,会显示默认选择值(INSTRUMENT_CHOICES 的第一个值)。
我在这里想念什么?关于如何通过表单中的模型处理 m2m 是否有更好的方法或更好的文档?
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 数组?
django - Django ForeignKey在同一个表中关于不同表中的相同属性
我的项目中有一个模型。
想象一下:match_user 是“Mete”,matched_user 是“Gizem”。match_user 也是 'Gizem' 而matched_user 是 'Mete' 我有 2 个表格行:
现在如果我想删除mete,只删除第一行。但我想删除 2 行。实际上我想在不同表中的同一位置有两个外键。我怎么能?是否可以。如果不可能,是否有任何解决方案可以满足我的需求。我也尝试了一些不同的方法:
但是一直有错误感谢您的回答:)
django - 没有对象的 Django ManyToMany 相关管理器返回 True
Django 1.9、Python 3.6、postgres 数据库
存在Calendar
和CalendarOwner
,其中多对多关系在 中定义Calendar
。
当我调用与它相关联Calendar.calendar_method()
的(s) 时,为 each 调用它,并按预期工作 - 根据我在那里的任何逻辑,我得到一个布尔值。
我认为它的工作方式是从所有方法调用中,如果至少有一个执行中断并且返回值为. 否则它将调用所有相关对象并最终返回。Calendar
CalendarOwner
CalendarOwner.calendar_owner_method()
CalendarOwner
True
True
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 方法来做到这一点。
django - Django - 使用通用 UpdateView 编辑多对多关系的双方
我有一个问题,是否可以使用通用 UpdateView 类来编辑多对多关系的“双方”。我在 models.py 中定义了以下类:
这些都是字典类型的表,用于存储我的应用程序的配置数据集。为了允许编辑字典,我使用简单的 UpdateViews:
这很好用,我得到了一个不错的多选,一切都很完美。但是,我希望能够从 SomeCategory 表的一侧编辑关系,因此我可以选择哪些 SomeClass 元素链接到某个 SomeCategory:
我尝试将related_name
属性添加到 SomeCategory 模型,但这没有用。
有什么想法可以在不使用自定义 ModelForm 的情况下完成吗?
关键库版本:
PS:这是我在 stackoverflow 上提出的第一个问题,所以如果我的帖子缺少任何强制性元素,请告诉我。
python - 查询 RelatedManager 对象
我有模型如
和我的admin.py
阅读
我希望根据字段的特定值过滤 Model1f4
就像是
results = Model1.objects.filter(where f4 = "some_specific_value")
这旨在产生一个包含 Model1 实例的查询集,其中内联 Model2 将f4
设置为some_specific_value
谢谢!