问题标签 [django-select-related]

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 投票
3 回答
7203 浏览

django - django:select_related 与 entry_set

entry_set 是否应该与 select_related 一起缓存?即使在我使用 select_related 之后,我的数据库仍然会接到电话。相关部分

我在一开始就看到了一个大的连接查询,然后个人要求每个成就。用于点数和名称查找。

这是一个错误,还是我做错了什么?

0 投票
3 回答
596 浏览

python - 即使在 select_related() 之后,Django 也会访问 MySQL?

我正在尝试优化来自一个相当小的 Django 应用程序的数据库调用。目前我有几个模型,InquiryInquiryStatus. 从 MySQL 中选择所有记录时,我JOIN在两个表上得到了一个很好的语句,然后是对 InquiryStatus 表的许多请求。如果我已经完成了,为什么 Django 仍然发出单独的请求select_related()

模型如下所示:

我为调试而拼凑的视图如下所示:

我试过使用select_related(depth=1),没有任何变化。对数据库的每个无关请求都idWHERE子句中选择一个特定的请求。

更新:

所以有一点非常重要的代码应该与模型一起放入:

结果,fullhistory是(由于我无法理解的原因)提取每个单独的结果并对其进行解析。

0 投票
2 回答
24888 浏览

python - Django:select_related 与 ManyToManyField

我有 :

我怎样才能拥有一个Alias包含所有内容achiever_setawards预先填充的内容?

我将需要大量访问别名已经获得的奖项(中间表和奖项本身)。我怎样才能批量处理所有这些?

0 投票
1 回答
16488 浏览

django - Django ORM - 带有外键的 select_related 和 order_by

我有一个简单的音乐模式:Artist、Release、Track 和 Song。前 3 个都是逻辑结构,而第四个(Song)是(Artist、Release、Track)作为 mp3、wav、ogg 等的特定实例。

我无法在数据库中生成有序的歌曲列表。问题是两者Track都有Release一个Artist. 虽然Song.Track.Artist始终是表演者姓名,Song.Track.Release.Artist但可能是表演者姓名或“各种艺术家”用于编译。我希望能够按其中一个进行排序,但我无法找出正确的方法来完成这项工作。

这是我的架构:

我的查询应该相当简单;过滤特定用户拥有的所有歌曲,然后按Song.Track.Artist.name或对它们进行排序Song.Track.Release.Artist.name。这是我在视图中的代码,按以下方式排序Song.Track.Artist.name

除非我order_by使用tblname.colname. 我查看了底层查询对象的as_sql方法,它表明当进行内连接以获取Song.Track.Release.Artist临时名称时,表T6使用了临时名称,Artist因为已经在同一个表上完成了内连接以获取Song.Track.Artist

当我将其作为表名放入时,order_by它确实有效(参见上面的示例输出),但这似乎完全不可移植。当然有更好的方法来做到这一点!我错过了什么?

0 投票
3 回答
1511 浏览

python - 如何获得模型的相关对象和模型的子相关对象的总数?

在 Django 中,我有一个 Checkout 模型,它是某人检查设备的票。我还有一个与 Checkout 模型相关的 OrganizationalUnit 模型(通过 ForeignKey),因为结账的人属于我们校园的一个 OrganizationalUnit。

OrganizationalUnit 有一个自我关系,所以几个 OU 可以是某个 OU 的孩子,而这些孩子可以有孩子,以此类推。这是模型,有些简化。

我想计算与某个 OrganizationalUnit 及其所有子级相关的 Checkouts。我知道如何获取与 OU 相关的所有结帐的计数。

但是我如何让这个计数反映这个 OU 的孩子和他们的孩子的结帐?我是否使用某种迭代循环?


编辑:我想我仍然无法完全理解 while 命令来执行此操作。组织单元可以嵌套到用户想要嵌套的深度,但现在它在 DB 中的深度最多为 5 层。这是我写的……</p>

......这完全是废话。而且它需要一段时间才能运行,因为它几乎遍历了数据库的主要部分。帮助!(我今天似乎不能很好地思考。)

0 投票
4 回答
12026 浏览

django - Django中的左外反向select_related?

想象以下模型:

有些父母有孩子,有些则没有(他们不是真正意义上的父母,只是一个虚构的名字)。

我想进行以下查询:我想列出所有的父母,如果他们有孩子,也给我带来孩子。这相当于对子表的左外连接,即:

这样,当我在模板中调用Parent.child_set时,我不会多次访问数据库。有没有办法做到这一点?谢谢

0 投票
1 回答
177 浏览

django - 与 Django 的艰难关系

看看这个模型(它是假设的):

我要查询的是:汽车列表及其制造商的经理(考虑到一些在问题中不重要的条件),以及他们的城市。这可以通过以下代码以某种方式完成:

会在字典中按经理列出制造商的汽车,这就是我想要的。但是,这段代码显然运行了与数据库中的汽车一样多的查询。

如何一次选择所有这些实例?

0 投票
1 回答
603 浏览

sql - Django:在更改列表中显示多对多字段

Django 不支持在更改列表中显示多对多关系中的相关对象是有充分理由的。这将导致大量的数据库命中。

但有时不可避免且有必要例如在更改列表中显示与对象具有多对多关系的对象类别。鉴于这种情况,是否有人有一些经验/片段等来加快速度(考虑缓存、自定义 sql 查询......)?(我知道我可以制作一个调用的方法object.categories.all()......但这真的很让人头疼......)。

0 投票
2 回答
3146 浏览

django - 需要帮助使用来自 Select_related() 查询集的数据

我正在研究一个零件数据库,其中每个零件号也可以是一个组件,这意味着它由任意数量的其他零件组成(并且循环可以继续,子零件由更多零件组成,等等)。所以有两个数据库表,一个用于零件信息,另一个用于关系信息——一个零件号链接到它的“子零件”号。请记住,“组件”、“零件”和“子零件”最终都只是“零件”(有点令人困惑,但它允许更干燥和通用的数据库)。

我目前正在使用 select_related 调用来跟踪我的模型中使用的 ForeignKeys。但是,因为我的查询可能返回的不仅仅是一个结果(如果有多个子部分),我不能使用“get”查找,而是使用“filter”。所以-我无法遵循文档中显示的示例,这些示例都基于 get 查询。

select_related 查询似乎正在获取我想要的内容(基于 DjangoDebugToolbar 显示的原始 SQL 查询)。但是,我不知道怎么称呼它!显示相关表中的值的正确语法或方法是什么?如何遍历返回的查询集中的每个实例?下面的模板片段应该最有效地显示我想要获得的结果。谢谢。

谢谢你的帮助

0 投票
1 回答
3352 浏览

python - 在 Django 中,我可以在 `select_related()` 查询的对象中`defer()` 字段吗

在我的 Django 应用程序中,我想使用select_related()aQuerySet来“关注”一个ForeignKey字段,但我只需要访问“关注”模型实例上的一些字段。我可以在defer()我的“关注”字段中以某种方式使用该方法吗?

例如,如果我有...

......我正在做我FooModel.objects.all().select_related('bar')如何才能defer()在这个领域blah

谢谢。