问题标签 [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.
django - Django通过具有多个关系的两个值的总和进行注释
我有 4 个模型:
AppVersion
版本总是有 1 Apk
,但可能有 0、1 或Obb
2
我想通过总计size
(App
对于给定Apk.size
的所有 + 总和)来注释 QuerySet。Obb.size
AppVersion
我的App
查询集看起来像这样:
和版本子查询是:
此子查询始终提供最新AppVersion
的App
.
那么我应该使用什么子查询来注释如上所示计算qs
的属性?size
django - 如果没有匹配的数据,Django Exists() / ~Exists() 返回?
编辑:
根据下面席林特的回答,我已切换到使用案例/何时:
但是我现在正在努力解决一个错误:
原始问题:
我在下面有一个带有查询/子查询的 DetailView,该查询/子查询检查供应商代码是否存在于第二个模型的实例中,该模型设置为表示接收到实时库存数据库的采购订单。
这样做的目的是作为一个清单/清单,它将返回是否已收到每个预计发送订单的供应商的订单。
让它返回有一个匹配项似乎工作正常,如果有一个它无法识别的值(我故意创建了一个与列表不匹配的无效订单),它将返回没有匹配项.
但是我需要这个也告诉我根本没有数据,但我似乎无法实现这一点。
例如,下面显示了模板输出;G001 是我设置的“假”代码,G002 是供应商列表中存在的有效代码。但是,如果没有 G002 的订单,它将不会返回任何内容。
我尝试为作为 context['db_orders'] 镜像的上下文编写第二个查询,但使用 ~Exists() 然后将 if 语句嵌套在模板中,但这只会告诉我订单既存在又不存在'不存在,反之亦然。
我也尝试在模板中使用'is not'或'is None'或'is False'来执行此操作,但似乎无法获得我需要的输出
最终,预期的输出是一个表格,其中列出了特定零售商预期的所有供应商,根据订单是否存在于 Order 实例中,它们旁边会出现某种“是”或“否”。(模板 HTML 目前没有反映这一点,但这不是问题)
模板:
细节视图:
模型.py
django - Django:注释相关字段列表
我有一个带有相关模型 CompanyRecruiter 的公司和用户模型:
我想注释作为招聘人员的用户的用户 ID 列表,以便公司以后能够对其进行过滤:
我已经尝试过使用自定义聚合和子查询但没有成功。我使用postgres。
django - 在 Django 中使用具有多个结果的子查询进行注释
我在我的项目中使用 postgresql 数据库,并使用 django文档中的以下示例。
但不是最新的评论者电子邮件,我需要最后两封评论者的电子邮件。我改为[:1]
但[:2]
引发了这个异常:ProgrammingError: more than one row returned by a subquery used as an expression
。
mysql - 通过 ForeignKey 外部引用过滤的汇总子查询注释
我尝试从这个 SQL 查询中编写等效的 Django 查询,但我被卡住了。欢迎任何帮助。我收到了一场比赛id
,我想从这场比赛中做一些统计:nb_race
= 比赛前一匹马的比赛次数,best_chrono
= 比赛前一匹马的最佳时间。
Django 模型:
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?
python - 如何使用 Postgres 窗口函数或横向连接限制 Django ORM 中每个组的前 N 个?
我有以下Post
, Category
&PostScore
模型。
所以我想要编写一个查询,它返回每个不同类别(CategoryN
)的帖子数(Posts ),按帖子分数(由PostScore模型中的 total_score 列表示)以降序方式排序。这样我每个类别的帖子得分最高的 N 记录。
因此,我可以通过以下原始查询来实现上述目标,该查询为我提供了每个类别得分最高的前 10 个帖子:
到目前为止,我使用 Django ORM 所取得的成就:
大致评估为
所以基本上我需要通过使用“排名”别名来限制每个组(即类别)结果的缺失。
很想知道如何做到这一点?
我已经看到Alexandr在这个问题上提出的一个答案,实现此目的的一种方法是使用Subquery和in运算符。虽然它满足上述条件并输出正确的结果,但查询速度很慢。
无论如何,如果我通过 Alexandr 的建议,这将是一个查询:
所以我更热衷于通过在 ORM 中使用窗口函数来完成上述原始查询(几乎完成只是错过了限制部分) 。另外,我认为这可以通过使用横向连接来实现,因此也欢迎这个方向的答案。
django - 对 Django 子查询值执行算术运算
在我们的系统中,有与“用户”对象相关联的“汽车”对象。使用子查询,我想计算一组特定的 Car 对象,对结果执行算术运算并使用该值更新 User 对象。问题是子查询是表达式,而不是整数,因此我不能将它们作为整数处理。下面的代码不起作用,但您可以看到我想要实现的目标。这应该怎么做?
django - 用 Django 中的 jsonb 字段过滤子查询的计数进行注释
我有一个带有 jsonb 字段的模型。此 jsonb 字段中有一个值可以在其他行之间共享。我试图在按此 jsonb 字段过滤时获取子查询的计数。
我一直在尝试从这篇文章中借用示例的一些伪代码。
使用此示例数据,我希望顶部实例具有related_beta_count
of,2
因为有两个关联的 beta 具有相同的nested_value_id
.
我在下面遇到错误,但无法解决。
mysql - Django ORM创建嵌套查询防止使用`have`
假设我有一个Transaction
具有以下字段的模型[token, pair_token, amount, related_transaction]
,我想在 mysql 中生成这样的查询:
此查询查找两个相关交易的最后一个值,该值等于令牌及其 pair_token 组合的价格。为了在 django 中得到类似的结果,我使用Subquery
如下:
但它会生成错误的查询:
Mysql 为这个查询生成一个错误,它必须是,我不知道如何避免having
在 using 中生成一个查询Subquery
。如果我在没有任何Subquery
group by 子句的情况下使用此查询,则会生成但在使用Subquery
group by term 时将被删除并having
出现。
我正在使用django 3.1.1
和mysql 8.0.19
更新:
交易模式: