【发布时间】:2020-11-09 16:38:07
【问题描述】:
对于报告,我想将一些计数组合在一起,但仍然可以访问行数据。我觉得我经常这样做,但今天找不到任何代码。这是在 B2B 视频交付平台中。我的建模的简化版本:
- 视频(名称)
- 公司(名称)
- 查看(视频、公司、时间)
我想显示哪些公司观看的视频最多,同时也显示哪些视频最受欢迎。
+-----------+-----------+-------+
| Company | Video | Views |
+-----------+-----------+-------+
| Company E | Video 1 | 1215 |
| | Video 2 | 5 |
| | Video 3 | 1 |
| Company B | Video 2 | 203 |
| | Video 4 | 3 |
+-----------+-----------+-------+
我可以通过注释视图(以获得公司订单的权利,首先是大多数视图)然后循环公司并为每个公司执行视图查询来做到这一点,但是我如何在 O(1-3 ) 查询而不是 O(n)?
【问题讨论】:
-
你能把你的模型贴出来吗(简化版就可以了)
-
@iklinac 我做了,非常简单。视频、公司和日志模型将两者联系在一起的视图。
-
我建议您使用公司的值、聚合和 select_related。当我要求模型时,没有费心写完整的解决方案,这样我就不需要重写它们了:)
标签: django django-queryset django-aggregation