问题标签 [django-aggregation]

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

django - 聚合和注释与信号的效率

我想计算用户对我的网站所做的贡献数量,以便我可以在网站上对他们进行排名。我设法编写了一些漂亮的代码来做到这一点,但基于每个用户。

因为用户在不同的字段中获得不同数量的积分,所以它会检查模型上的某些字段以及用户是否在其中输入了值。然后将这些值乘以它们的权重,得出总分。

没有什么比一些代码更能说明问题了:

我还想展示前10名,所以我需要获得前10名用户。这意味着我要么必须编写一个复杂的聚合,但目前我一直没有这样做,或者我可以通过以下方式使用信号:

当模型被保存时,捕获 post_save 信号。然后使用我现有的课程为用户重新计算积分,并将其存储在用户个人资料中。这样我就可以按用户个人资料中的值对用户进行排序,这很简单。

问题是,每次保存模型时重新计数或相当复杂的聚合函数会更有效。我知道这将取决于很多事情,但我确信从概念的角度来看,应该有理由选择其中之一。请注意,我将在聚合中检查的一些字段也将是关系的,所以我不确定这将如何影响性能。

提前致谢,

叔丁基锂

0 投票
1 回答
1075 浏览

python - 如何使用 Django QuerySet 中的 startTime 和 endTime 字段计算持续时间?

我有这个模型:

如何仅使用 QuerySet API 聚合平均时间间隔?

我试过这个:

但它抛出:

0 投票
2 回答
71371 浏览

django - 如何使用 Django 进行分组和聚合

我想通过 ORM 进行一个相当简单的查询,但无法弄清楚..

我有三个模型:

位置(地点)、属性(地点可能具有的属性)和评分(还包含分数字段的 M2M“通过”模型)

我想选择一些重要的属性,并能够根据这些属性对我的位置进行排名——即所有选定属性的总分越高 = 越好。

我可以使用下面的 SQL 来得到我想要的:

返回

我能用 ORM 得到的最接近的是:

哪个返回

即所有的总和,不按位置分组。

有什么办法吗?我可以手动执行 SQL,但宁愿通过 ORM 来保持一致。

谢谢

0 投票
2 回答
1615 浏览

django - 按相关模型子集的最新实例对 django 查询集进行排序

我有一个 Order 模型和 order_event 模型。每个 order_event 都有一个要订购的外键。所以从一个订单实例我可以得到:myorder.order_event_set。我想获取所有订单的列表,但我希望它们按最后一个事件的日期排序。像这样的语句可以按最新事件日期排序:

但是,我真正需要的是按 A SUBSET OF EVENTS 的最新日期排序的所有订单列表。例如,我的事件被分类为“调度”、“处理”等。所以我应该能够获得按最新调度事件排序的所有订单的列表。此 django 文档(https://docs.djangoproject.com/en/dev/topics/db/aggregation/#filter-and-exclude)显示了我如何使用过滤器获取最新的日程安排事件,但这不包括没有日程安排的订单事件。

我想我可以将过滤后的查询集与一个查询集结合起来,其中包括那些缺少调度事件的订单……但我不太确定如何做到这一点。我看到了与使用 python 列表相关的答案,但是拥有一个适当的 django 查询集会更有用(即,对于带有分页的视图等)

编辑回复:评论/建议

另外,我不介意在不止一个声明中这样做。此外,通过 python 而不是 orm 进行排序等是可以的,因为我不使用庞大的数据集。如果可能的话,出于您提到的原因,我宁愿远离 sql​​。组合单独的、排序的查询集似乎很有希望,但我被卡住了。

0 投票
2 回答
1938 浏览

django - Django 聚合值查询集

我有一个名为data.

我正在尝试获取每个对象的所有类型的摘要计数

data.values('type')产生这个输出:

我想得到这样的细分(可以有更多的选择,而不仅仅是“内部”和“外部”。这可能是多达 20 种不同的类型:

我正在尝试这个,但它只是返回一个空字典......

Annotate 也产生了不希望的结果:

模型.py

0 投票
1 回答
687 浏览

django - Django:按评论计数设置的订单查询

非常简单...我使用的是 Django 1.4.1,并且需要按评论数量的倒数来订购查询集。我正在使用 Django 评论框架,并尝试使用其他答案中推荐的 .annotate(comment_count = Count('comment') 结构......我得到 'comment' doesn't resolve to a field error。

我也试过 django-generic-aggregate 的 0.3.1 版本,它会引发数据库错误,所以就这样了。

有什么建议么?

0 投票
1 回答
57 浏览

django - 在 django 的此查询中应用条件

我有这样的模型:

我想找到每个类别的所有预算的总和并显示remaining budget

有些类别可能还没有任务。因此,categories_cost看起来像这样:

因此,当我尝试减去时,会出现此错误:

如何解决这个问题?

0 投票
4 回答
16865 浏览

python - 在 django 中使用聚合获取最小值字段名称

我有一个模型,其中一些字段如下所示

所以我想获取具有lowest price 值的字段名称,所以为了获取lowest price值,我们可以像下面这样使用Aggregations

那么最后如何获得field name与django中最低价格相关的?

0 投票
4 回答
1866 浏览

django - Django Activity Feed(Feedly 集成?)

我已经构建了一个简单的 Django 照片应用程序。用户可以上传照片、关注其他用户和喜欢照片。为了处理用户之间的关系(关注和取消关注),我使用了coleifer的一个名为django-relationships的包。这是一个很棒的软件包,使用起来非常简单。

一切正常。我目前有一个工作活动提要。

我将提要过滤为两个部分:关注(我关注的用户的所有活动)和您(发生在我身上的所有活动)。我从我的 iOS 应用程序中发布了下面两张图片,该应用程序使用我的 Django 照片应用程序作为后端:

在此处输入图像描述 在此处输入图像描述

我想做的是将聚合添加到以下 Feed。如您所见,用户 alexperri 已点赞 5 次。我想将所有这些项目汇总到一行中。我不需要为“你”提要添加聚合,因为我希望看到发生在我身上的每个单独的操作。但是对于以下提要,添加聚合是有意义的。有几个应用程序可以很好地进行聚合。Fashionlista、Pinterest 和 Instagram 在这方面做得很好。这是 Instagram 的一个示例,展示了我想要实现的目标:

在此处输入图像描述

在上面的示例中,您可以看到以下提要,并且 lovetoronto 赞了 5 张照片。我开始在 Instagram 上玩转,看看它是如何工作的。Instagram 以下供稿最多显示 35 个活动条目,每个条目最多可以有 5 个该操作类型的活动。“lovetoronto赞了5张照片”是一个活动条目,它显示了他最近点赞的5张照片。自从lovetoronto执行了最新的动作,他就位居榜首。

我想实现相同的设置。

这是我当前的模型设置:

模型.py

每次创建“Like”对象时,我也会创建一个 Activity 对象,参与者是执行该操作的人,接收者是执行该操作的人,该操作(在本例中为字符串,'喜欢的'),帖子(照片)和活动对象的创建时间。

我使用 django-tastypie 来获取和创建“喜欢”和“活动”对象。

api.py

如何以聚合活动对象的方式修改 FollowFeed 资源?我遇到了Feedly项目。如何在我当前的设置中使用它?

0 投票
4 回答
37706 浏览

django - Django order_by() 过滤器与 distinct()

我怎样才能做出order_by这样的......

问题是我有多个同名的供应商,我只想要供应商的最新产品..

希望它有意义吗?

我得到了这个数据库错误:

SELECT DISTINCT ON 表达式必须匹配初始 ORDER BY 表达式第 1 行:SELECT DISTINCT ON ("search_vendor"."name") "search_product"...