You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中同模型同部门字段值时聚合登录计数的实现问题

解决方案:按Department聚合Login Count

要实现按department合并记录并聚合login_count的需求,你可以利用Django ORM的分组聚合功能,完全不需要修改模型(保留date字段丝毫不影响这个逻辑)。

步骤1:修改views.py中的查询集

把原来的department_count = LoggedUserDepartement.objects.all()替换成下面的代码,通过values()指定分组字段,再用annotate()完成求和聚合:

from django.db.models import Sum

# 按department分组,计算每个部门的login_count总和
department_count = LoggedUserDepartement.objects.values('department').annotate(total_login=Sum('login_count')).order_by('department')
  • values('department'):告诉ORM以department字段为依据分组
  • annotate(total_login=Sum('login_count')):对每个分组下的login_count求和,结果存到自定义的total_login字段中
  • order_by('department'):可选配置,让结果按部门名称排序,方便阅读

步骤2:更新模板代码

模板里只需要渲染聚合后的部门名称和总登录数即可,不再需要处理date字段:

{% for item in department_count %}
    {{ item.total_login }} {{ item.department }}<br>
{% endfor %}

效果验证

用你提供的示例数据,运行后会得到完全符合期望的结果:

5 css
3 carefr

这样既保留了date字段用于其他查询场景,又完美实现了按部门聚合登录数的需求~

内容的提问来源于stack exchange,提问作者Farhani Walid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:03:20