问题标签 [django-subquery]

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

django - Django通过具有多个关系的两个值的总和进行注释

我有 4 个模型:

AppVersion版本总是有 1 Apk,但可能有 0、1 或Obb2

我想通过总计sizeApp对于给定Apk.size的所有 + 总和)来注释 QuerySet。Obb.sizeAppVersion

我的App查询集看起来像这样:

和版本子查询是:

此子查询始终提供最新AppVersionApp.

那么我应该使用什么子查询来注释如上所示计算qs的属性?size

0 投票
1 回答
656 浏览

django - 如果没有匹配的数据,Django Exists() / ~Exists() 返回?

编辑:

根据下面席林特的回答,我已切换到使用案例/何时:

但是我现在正在努力解决一个错误:


原始问题:

我在下面有一个带有查询/子查询的 DetailView,该查询/子查询检查供应商代码是否存在于第二个模型的实例中,该模型设置为表示接收到实时库存数据库的采购订单。

这样做的目的是作为一个清单/清单,它将返回是否已收到每个预计发送订单的供应商的订单。

让它返回有一个匹配项似乎工作正常,如果有一个它无法识别的值(我故意创建了一个与列表不匹配的无效订单),它将返回没有匹配项.

但是我需要这个也告诉我根本没有数据,但我似乎无法实现这一点。

例如,下面显示了模板输出;G001 是我设置的“假”代码,G002 是供应商列表中存在的有效代码。但是,如果没有 G002 的订单,它将不会返回任何内容。

我尝试为作为 context['db_orders'] 镜像的上下文编写第二个查询,但使用 ~Exists() 然后将 if 语句嵌套在模板中,但这只会告诉我订单既存在又不存在'不存在,反之亦然。

我也尝试在模板中使用'is not'或'is None'或'is False'来执行此操作,但似乎无法获得我需要的输出

最终,预期的输出是一个表格,其中列出了特定零售商预期的所有供应商,根据订单是否存在于 Order 实例中,它们旁边会出现某种“是”或“否”。(模板 HTML 目前没有反映这一点,但这不是问题)

模板:

细节视图:

模型.py

0 投票
1 回答
988 浏览

django - Django:注释相关字段列表

我有一个带有相关模型 CompanyRecruiter 的公司和用户模型:

我想注释作为招聘人员的用户的用户 ID 列表,以便公司以后能够对其进行过滤:

我已经尝试过使用自定义聚合和子查询但没有成功。我使用postgres。

0 投票
1 回答
968 浏览

django - 在 Django 中使用具有多个结果的子查询进行注释

我在我的项目中使用 postgresql 数据库,并使用 django文档中的以下示例。

但不是最新的评论者电子邮件,我需要最后两封评论者的电子邮件。我改为[:1][:2]引发了这个异常:ProgrammingError: more than one row returned by a subquery used as an expression

0 投票
1 回答
916 浏览

mysql - 通过 ForeignKey 外部引用过滤的汇总子查询注释

我尝试从这个 SQL 查询中编写等效的 Django 查询,但我被卡住了。欢迎任何帮助。我收到了一场比赛id,我想从这场比赛中做一些统计:nb_race= 比赛前一匹马的比赛次数,best_chrono= 比赛前一匹马的最佳时间。

Django 模型:

0 投票
1 回答
730 浏览

django - 从 Django 中的子查询聚合注释字段

我正在尝试使用 Django ORM 实现子查询,但找不到有效的解决方案。我需要逆向工程的 SQL 查询是:

我尝试使用 Django 子查询,如下所示:

但我得到一个错误ProgrammingError: more than one row returned by a subquery used as an expression。问题是 Django 生成的 SQL 与我上面的 SQL 不同,因为它不会从选择中进行选择,并且仅在子查询仅返回一行时才有效。我无法在子查询中执行 Sum 聚合,因为聚合函数调用不能包含集合返回函数调用。有没有另一种方法可以让 Django 根据我的需要生成 SQL?

0 投票
1 回答
429 浏览

python - 如何使用 Postgres 窗口函数或横向连接限制 Django ORM 中每个组的前 N ​​个?

我有以下Post, Category&PostScore模型。

所以我想要编写一个查询,它返回每个不同类别(CategoryN )的帖子数(Posts ),按帖子分数(由PostScore模型中的 total_score 列表示)以降序方式排序。这样我每个类别的帖子得分最高的 N 记录。

因此,我可以通过以下原始查询来实现上述目标,该查询为我提供了每个类别得分最高的前 10 个帖子:

到目前为止,我使用 Django ORM 所取得的成就:

大致评估为

所以基本上我需要通过使用“排名”别名来限制每个组(即类别)结果的缺失。

很想知道如何做到这一点?

我已经看到Alexandr在这个问题上提出的一个答案,实现此目的的一种方法是使用Subqueryin运算符。虽然它满足上述条件并输出正确的结果,但查询速度很慢。

无论如何,如果我通过 Alexandr 的建议,这将是一个查询:

所以我更热衷于通过在 ORM 中使用窗口函数来完成上述原始查询(几乎完成只是错过限制部分) 。另外,我认为这可以通过使用横向连接来实现,因此也欢迎这个方向的答案。

0 投票
1 回答
57 浏览

django - 对 Django 子查询值执行算术运算

在我们的系统中,有与“用户”对象相关联的“汽车”对象。使用子查询,我想计算一组特定的 Car 对象,对结果执行算术运算并使用该值更新 User 对象。问题是子查询是表达式,而不是整数,因此我不能将它们作为整数处理。下面的代码不起作用,但您可以看到我想要实现的目标。这应该怎么做?

0 投票
1 回答
83 浏览

django - 用 Django 中的 jsonb 字段过滤子查询的计数进行注释

我有一个带有 jsonb 字段的模型。此 jsonb 字段中有一个值可以在其他行之间共享。我试图在按此 jsonb 字段过滤时获取子查询的计数。

我一直在尝试从这篇文章中借用示例的一些伪代码。

使用此示例数据,我希望顶部实例具有related_beta_countof,2因为有两个关联的 beta 具有相同的nested_value_id.

我在下面遇到错误,但无法解决。

0 投票
1 回答
65 浏览

mysql - Django ORM创建嵌套查询防止使用`have`

假设我有一个Transaction具有以下字段的模型[token, pair_token, amount, related_transaction],我想在 mysql 中生成这样的查询:

此查询查找两个相关交易的最后一个值,该值等于令牌及其 pair_token 组合的价格。为了在 django 中得到类似的结果,我使用Subquery如下:

但它会生成错误的查询:

Mysql 为这个查询生成一个错误,它必须是,我不知道如何避免having在 using 中生成一个查询Subquery。如果我在没有任何Subquerygroup by 子句的情况下使用此查询,则会生成但在使用Subquerygroup by term 时将被删除并having出现。

我正在使用django 3.1.1mysql 8.0.19

更新

交易模式: