问题标签 [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 投票
2 回答
3661 浏览

django - django - 表单中的动态选择字段

我有一个名为 picks 的模型,它允许用户选择一个 nfl 团队(从静态列表中)。每当他们选择一个团队时,他们就不能再选择该团队,因此他们选择的任何团队都会减少选择的选择。
在我看来,我有一个函数可以计算出他们尚未选择哪些团队,但我无法弄清楚如何将此信息传递给表单。我在网上查看了许多表单示例,但还没有真正找到一个显示如何完成此操作的示例。从我读过的内容来看,似乎我应该从 forms.py 文件中调用此函数,但该函数需要作为参数传入的用户 ID 和联赛 ID,所以我宁愿只在模型中执行此操作。谁能解释一下,

我在 Django 和 Python 中都比较新,所以请原谅我在这里所做的任何明显的疏忽。

谢谢!

编辑

好的,我想也许我在这里为这个问题提供了太多非关键信息,我将尝试在这里简化问题:

我有一个创建表单的视图。表单中有一个选择框。我根据当前用户和启动视图的 URL 中的变量计算应该在视图内的选择框中输入的选项。我想知道如何将选择选项传递到表单中,或者如果这不是应该如何完成的。

我现在没有代码在我面前发布,但我真的认为它与问题无关。我希望我已经让它足够通用了。

0 投票
0 回答
627 浏览

django - Django select_related() 不返回主键id

当我使用 select_related.get() 查询数据库时,返回的对象似乎没有主键或外键 ID。我能够访问表和相关表中的所有其他数据。但是,当我使用 all() 方法而不是相关表中的记录时,我能够获取主键。

我正在尝试从包括相关表的表中获取所有记录。怎么能做到这一点?select_related().all() 似乎不起作用。

当我使用 all() 查询会话表中的所有记录时,id 字段具有值。但是,当我使用 select_related().all() 查询时,会话表和平台表 id 字段为空。

如何创建一个查询,该查询还将从两个表中获取 id 字段?

0 投票
3 回答
35146 浏览

django - Django 查询相关字段计数

我有一个用户创建页面的应用程序。我想运行一个简单的数据库查询,返回有多少用户创建了超过 2 个页面。

这基本上是我想要做的,但当然这不是正确的方法:

我错过了什么?

0 投票
2 回答
2490 浏览

django - 带有指定字段的 Django select_related 打破了多个一对一关系

我在尝试通过多个 OneToOneField 关系选择相关时遇到一个奇怪的错误,例如,在目标字段是孙子类的情况下。我希望有人能帮助我了解发生了什么(或确认这是 Django 中的一个错误)。

插图:

很简单,对吧?现在我用一个干净的数据库打开 Django shell:

等等,什么?为什么那个查询集是空的?快速健全性检查:

那么为什么 select_related 调用不起作用呢?好吧,看这个:

那么,这是一个 Django 错误,还是我不明白什么?

0 投票
1 回答
306 浏览

google-app-engine - 如何使用 google-appengine 和 django-nonrel 模仿“select_related”?

django nonrel 的文档指出:“您必须手动编写代码来合并多个查询的结果(JOIN、select_related() 等)”。

有人可以指出我手动添加相关数据的任何片段吗?@nickjohnson 有一篇很棒的文章展示了如何使用直接的 AppEngine 模型来做到这一点,但我使用的是 django-nonrel。

对于我的特殊用途,我正在尝试获取 UserProfiles 及其相关的用户模型。这应该只是两个简单的查询,然后匹配数据。

但是,使用 django-nonrel,查询集中的每个结果都会触发一个新查询。如何以“select_related”的方式访问相关项目?

我已经尝试过了,但它似乎没有像我预期的那样工作。查看 rpc 统计信息,它似乎仍在为每个显示的项目触发查询。

更新: Ick...我弄清楚我的问题是什么。

我试图提高 django admin 中 changelist_view 的效率。当外键在我的“display_list”中时,上面的 select_related 逻辑似乎仍在为结果集中的每一行生成额外的查询。但是,我将其追溯到不同的东西。上面的逻辑不会产生多个查询(但如果你更接近地模仿尼克约翰逊的方式,它看起来会更漂亮)。

问题是在 ChangeList 方法内第 117 行的 django.contrib.admin.views.main 中有以下代码:result_list = self.query_set._clone(). 所以,即使我在管理员中正确地覆盖了查询集并选择了相关的东西,这个方法会触发查询集的克隆,它不会保留我为“选择相关”添加的模型上的属性,导致比我开始时更低效的页面加载。

还不知道该怎么做,但是选择相关内容的代码就可以了。

0 投票
2 回答
306 浏览

django - 具有相关模型的 Django 查询仅显示一个模型的字段

我有三个相关的模型,并希望进行查询以获取所有三个模型的字段组合。

生成可以使用 debug_toolbar 检查的 SQL 语句。SQL 语句包含相关模型的所有字段。

将查询结果发送到 html 文件

仅提供为 Ordered_item 模型定义的表达式:

所以查询的结果如下:

这正是 def unicode (self) 中定义的字段:

我可以做些什么来向查询结果添加更多字段?为什么 SQL 中的字段没有显示在查询结果中?

任何帮助将不胜感激。

0 投票
1 回答
5488 浏览

django - Django select_related 和字段查找

===型号===

===查看===

Django 文档

返回一个 QuerySet,它将自动“遵循”外键关系,在执行查询时选择附加的相关对象数据。

select_related 仅限于单值关系 - 外键和一对一。

https://docs.djangoproject.com/en/dev/ref/models/querysets/#select-related

我已经编写了以下查询集来获取模型字段(所有关系都是一对多的)

  • 我想从信息模型遍历上下模型
  • 我在模板中使用 select_related()获取A 类记录没有问题,但在我的情况下是否可以使用 select_related 获取所有模型字段(B 类、C、Cfurther、Infocategory、Extra)?
  • 如果不是,我是否必须创建新的查询集?或者什么 select_related() 会起作用?

我对select_related字段查找有点困惑

0 投票
1 回答
753 浏览

django - Django:select_related() 和内存使用情况

我正在研究一个 API,我有一个问题。我正在研究 的用法select_related(),以便为自己节省一些数据库查询,实际上它确实有助于减少执行的数据库查询的数量,但代价是更大和更复杂的查询。

我的问题是,使用select_related()会导致更重的内存使用吗?运行一些实验我注意到确实是这种情况,但我想知道为什么。不管我是否使用select_related(),响应都会包含完全相同的数据,那么为什么使用select_related()会导致使用更多的内存呢?

是因为缓存吗?也许单独的数据对象用于缓存相同的模型实例?我不知道还能怎么想。

0 投票
2 回答
2178 浏览

python - Django 管理员性能问题

当我尝试在 Django 管理界面中打开模型时,我收到了数千个这样的查询,这会导致严重的性能问题。

为什么 Django 管理员不使用 select_related() 有什么想法吗?

以下是(我认为)模型的相关部分(我正在查看管理员中的 Student 模型的一个实例):

0 投票
2 回答
577 浏览

django - Django 标记 select_related

我使用Django 标记项目。

那是一个非常稳定的项目。在 django 1.3 上工作。

但我有一个问题。