带有聚合的 Django 子查询

2023-12-23

我有两个模型叫User and Transaction。这里我想获取状态为成功的所有用户的交易金额总和。

我尝试过使用子查询,但我不知道如何用条件注释子查询的聚合

class User(models.Model):
  name = models.CharField(max_length=128)

class Transaction(models.Model):
  user = models.ForeignKey(User)
  status = models.CharField(choices=(("success", "Success"),("failed", "Failed")))
   amount = models.DecimalField(max_digits=10, decimal_places=2)

subquery = Transaction.objects.filter(status="success", user=OuterRef('pk')).aggregate(total_spent = Coalesce(Sum('amount'), 0))

query = User.objects.annotate(total_spent=Subquery(subquery:how to do here ?)).order_by(how to order here by total_spent)

这变得容易得多django-sql-utils https://github.com/martsberger/django-sql-utils包裹。

from django.db.models import Sum,
from sql_util.utils import SubqueryAggregate

User.objects.annotate(
    total_spend=SubqueryAggregate('transaction__amount',
                                  filter=Q(status='success'),
                                  aggregate=Sum)
)

如果你想长期完成它(没有 django-sql-utils),你需要了解关于子查询的这两件事:

  1. 在使用之前无法对其进行评估

  2. 它只能返回具有单个列的单个记录

所以,你不能打电话aggregate在子查询上,因为这会立即计算子查询。相反,您必须注释该值。您还必须按外部引用值进行分组,否则您将仅独立注释每个事务。

subquery = Transaction.objects.filter(
        status='success', user=OuterRef('pk')
    ).values(
        'user__pk'
    ).annotate(
        total_spend=Sum('amount')
    ).values(
        'total_spend'
    )

首先.values导致正确的分组依据。第二.values导致选择您想要的一个值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有聚合的 Django 子查询 的相关文章

  • Python用Django请求Post请求数据

    我正在尝试向一个非常简单的 django 服务器发送一个简单的 post 请求 但无法理解为什么 post 数据没有出现在 requests post 字典中 而是出现在请求正文中 客户端代码 payload test test heade
  • django:如何在模板html页面内进行计算?

    您好 我正在使用缩略图插件来获取图像的宽度和高度 现在我想使用从缩略图插件获取的高度来定义 img 标签的填充 例如 img style padding top img height 2 src 但是我在这里遇到错误 django不允许这样
  • Django:使用 Django ORM 实现 JOIN?

    我有一个用 Django 构建的问答类型的网站 具有以下模型 class Question models Model title models CharField max length 70 details models TextField
  • 使用 Django Rest 保存 Base64ImageField 类型会将其保存为原始图像。如何将其转换为普通图像

    我的模型中有 5 个图像字段 imageS imageS imageS imageS 和 imageE 我正在尝试按以下方式保存图像 图像的类型Base64ImageField images imageA imageB imageC ima
  • 可以用 Django 制作移动应用程序吗?

    我想知道我是否可以在我的网站上使用 Django 代码 并以某种方式在移动应用程序 Flutter 等框架中使用它 那么是否可以使用我现在拥有的 Django 后端并在移动应用程序中使用它 所以就像models views etc 是的 有
  • Django 管理列降序排序

    当使用 Django admin 时格拉佩利 https github com sehmaschine django grappelli我希望单击列标题即可按降序对表格进行排序 我不希望通过在模型元类中定义排序字段来对列进行默认排序 默认行
  • 我应该在什么模型中添加ManyToManyField?

    我读了有关多对多关系的文档 https docs djangoproject com en dev ref models fields ref manytomany和examples https docs djangoproject com
  • 基于连接表的 Django 过滤器

    我有两张桌子 class Client models Model name models TextField lastname models TextField class Meta managed False db table clien
  • TemplateSyntaxError:“settings_tags”不是有效的标签库

    当我尝试运行此测试用例时 出现此错误 这是在我的 django 应用程序的tests py 中编写的 def test accounts register self self url http royalflag com pk accoun
  • 在一个视图中使用两个模板

    我尝试以两种方式呈现视图中的内容 html 和 csv 下载 我能够做到这一点的唯一方法是使用两种不同的视图 一种用于 html 演示 一种用于 csv 这重复了我的代码 我正在寻找更优雅的解决方案 有什么建议么 这是示例代码 views
  • Pinax:自定义注册和个人资料

    我想在用户注册时收集更多信息 并将其显示为个人资料信息的一部分 以便用户在创建登录后可以对其进行编辑 如何在不直接更改 pinax 代码的情况下扩展注册和个人资料表单和模型 来自 松树docs http pinaxproject com d
  • Django 模板 - 我可以设置要在父模板中使用的变量吗?

    我有一个包含通用导航菜单的父模板 我希望能够添加class selected 到适当的菜单选项 我希望能够在子模板中设置变量 例如 set menu products and do ifequal menu products class s
  • 具有内联模型的 Django 管理页面加载速度非常慢

    我有一个带有单个内联模型的模型的 Django 管理页面 当内联模型有很多项目 例如 75 个 时 页面加载速度非常慢 大约 30 秒 即使我排除内联模型上的所有字段 让它只渲染名称 情况也是如此 删除内联模型会导致页面加载速度非常快 以秒
  • Django“模型”对象不可迭代

    我有一张表 其中显示了已注册的员工 我想根据他们的数据库生成一个简单的 HTML 页面 其中包括他们的姓名 id 职称等 为此 我将一个 id 传递给视图 以便它可以获取相应用户的详细信息并向我显示 一切正常 直到出现错误对象不可迭代 下面
  • Django Rest Framework 序列化器中的聚合(和其他带注释的)字段

    我正在尝试找出添加带注释字段的最佳方法 例如将任何聚合 计算 字段添加到 DRF 模型 序列化器 我的用例只是一种情况 端点返回的字段未存储在数据库中 而是从数据库计算得出 让我们看下面的例子 模型 py class IceCreamCom
  • 操作错误:游标“_django_curs_”不存在

    我们有一个由 django postgresql 和 heroku 提供支持的在线商店 Web 应用程序 对于特定的活动 您可以将活动视为要购买的产品 我们已成功售出 10 000 份以上的副本 然而 根据我们的 Sentry 报告 我们的
  • 在 Django Rest Framework 中访问视图集和序列化器中的请求对象?

    我想访问 DRF 中 Views py 和 Serializers py 中的请求对象 我的观点 py class ProductViewSet viewsets ReadOnlyModelViewSet This viewset auto
  • 如何在没有 openshift 的情况下托管 Django localhost 应用程序?

    我已经在本地主机中创建了一个 Django 应用程序 现在我需要在互联网上托管 我已经尝试过开档 https www openshift com and 任何地方的Python https www pythonanywhere com也 但
  • Django 本身支持迁移吗

    我听说所有新的 Web 框架 如 ROR Django 等 都遵循敏捷和 TDD 的一般原则 遵循敏捷和 TDD 的一部分是在从一个迭代到另一个迭代时制定自己的设计 这意味着模型及其架构将随着应用程序的不同版本而演变 我知道 ROR 本身支
  • 无法使用数据库路由器通过 save_model 进行保存

    我正在使用数据库路由器 因此我的应用程序有两个数据库 一个数据库用于默认 django 数据 另一个数据库用于存储默认 django 数据 在我的管理员中我已经覆盖了save model函数以保存created by变量 但我无法做到这一点

随机推荐

  • R-使用ggplot在同一图表上为三个数据集创建图例

    我想知道是否可以使用 R 中的 ggplot 为包含多个系列图的图形创建图例框 本质上 这就是我正在做的事情 x lt c 1 2 3 4 y lt c 1 1 1 2 1 3 1 4 y2 lt c 2 1 2 2 2 3 2 4 x3
  • 网站是否也应该是一种网络资源?

    每个网络应用程序 每个网站 都是一项服务 使网站易于网络冲浪者使用的功能也使 Web 服务 API 易于程序员使用 Richardson 和 Ruby RESTFul Web 服务 正如我所希望的那样 同时也是 Web 服务的网站提供其资源
  • 制作模式以使用 NSRegularExpression

    斯威夫特 4 4 我想创建NSAttributedString using NSRegularExpression This two are bold text and different
  • 如何设置圆的物理属性,使其遵循给定的路径

    物理体圈的运动对于我想要实现的目标来说太不稳定了 我想限制它 使其遵循接触特定点 或一系列点 的特定路径 如下图所示 如何设置物理属性以遍历相似的路径 如何设置圆的物理属性 使其遵循给定的路径 因此 本质上您希望使用实时运动将节点移动到特定
  • mmap 是进程间通信的最佳方式吗?

    我使用文件在 Python 和 Ruby 脚本之间进行通信 但是 我们有 mmap 这是我的问题 我可以使用 mmap 做同样的事情 进程之间通信 吗 与物理文件相比 mmap 能给我们带来什么优势 加速 两个进程之间通信的最简单方法是什么
  • Scala:类型注释使尾递归检查失败

    我向此模式匹配添加类型注释只是为了我自己的理解 annotation tailrec def run A io IO A A io match case Return a gt a case Suspend r gt r case Flat
  • 如何制作像类一样的“可变”向量

    我正在尝试创建充当多维向量的类 它不必做任何花哨的事情 我基本上想要一个 容器 类 foo 我可以通过 foo x y z 访问元素 现在我还需要 foo x y 和 foo x 类似的类 这让我思考以下 更一般的 问题 有没有一种方法可以
  • 如何切换被单击的元素并隐藏所有其他元素?

    我想隐藏任何可见的跨度元素 如果有 并在单击元素时再次切换它 div class item a href element1 a span span1 span br div div class item a href element2 a
  • 缓存优先 Service Worker:如何绕过更新资产的缓存?

    这是场景 您有一个当前通过软件缓存的站点 您部署一个新版本 其中包含带有缓存清除版本的更新软件 然后该公司宣布了新功能 然而 人们访问该站点时 即使软件崩溃 它仍然会提供以前的缓存 同时在后台更新其缓存 因此 前来寻求新功能的访问者看不到它
  • Jqgrid + CodeIgniter

    我试图让 jqgrid 与 codeigniter 一起工作 但我做不到 我只想以 json 格式显示表中的数据 但什么也没发生 但我不知道我做错了什么 我看不到包含我正在调用的内容的表格 我的控制器 class Grid extends
  • Angular 2:找不到名称“订阅”

    尝试设置属性的类型时出现错误Cannot find name Subscription 我从哪个包导入它 import Component OnDestroy OnInit from angular core import Activate
  • 如何使用协程中的值或告知何时完成[重复]

    这个问题在这里已经有答案了 例如 当使用 WWW 类调用 Web API 时 我想要返回一个值或有关何时完成及其状态的一些反馈 那么 让我向我展示一种巧妙的方法吧 这里我们创建一个 IEnumerator 它接受一个 Action 在我们的
  • 具有传输和消息安全性的 WCF 绑定

    我正在从事一个大项目 该项目广泛使用WCF用于不同类型的通信 作为新要求的一部分 我们需要与SOAP由第三方开发的 Web 服务 他们的服务是用Java开发的 有两个安全要求 它需要基本身份验证超过运输和 该消息必须是使用 X509 证书签
  • PHP:documentElement->childNodes 警告

    xml file get contents example com dom new DomDocument dom gt loadXML xml items dom gt documentElement foreach items gt c
  • 使用 jQuery 将 JSON 附加到表单并提交

    给定这个空表单 我将如何使用 jQuery 附加 JSON 对象作为参数 然后提交它 表单应该标准提交 而不是 AJAX
  • 如何获取 iPhone 通讯录联系人的电子邮件作为 NSStrings?

    我知道一封电子邮件可以有多个值 但我不确定如何浏览它们 我可以正确地找到一个人 ABRecordRef person getting a person NSString emails NSString ABRecordCopyValue p
  • Pandas/SQL 共现计数

    假设我有下表 数据框 d store s1 s1 s2 s2 product a c a c df pd DataFrame data d print df store product 0 s1 a 1 s1 c 3 s2 a 4 s2 c
  • 使用 WIA 在 C# 中使用网络摄像头自动拍照

    我正在使用 WIALib 访问我的网络摄像头 我正在开发的代码非常简单 按下按钮时 会拍摄网络摄像头图片 然后显示在图片框中 我已经可以使用网络摄像头拍照 但尚未完全自动化 我发现检索网络摄像头拍摄的照片的唯一方法是使用以下方法 wiaPi
  • 如何从Python文件中读取多个字典?

    我对 python 比较陌生 我正在尝试读取一个包含多个字典的 ascii 文件 该文件具有以下格式 Key1 value1 key2 value2 Key1 value1 key2 value2 文件中的每个字典都是嵌套字典 我正在尝试将
  • 带有聚合的 Django 子查询

    我有两个模型叫User and Transaction 这里我想获取状态为成功的所有用户的交易金额总和 我尝试过使用子查询 但我不知道如何用条件注释子查询的聚合 class User models Model name models Cha