python - 是否有 django 方法将记录分组(列表中的组)并返回每个项目组的出现列表?
问题描述
我有以下列表,其中包含一年中的几周(python - Django):
weeks = list(range(1,53))
我有一个具有 date_started 和 date_registered 属性的项目模型,如下所示:
class Project(models.Model):
from_company = models.ForeignKey(Company,on_delete=models.CASCADE)
project_name = models.CharField("Nombre de Proyecto", max_length=200,unique=True)
follow_date = models.DateField("Fecha de Seguimiento", default=timezone.now() + timezone.timedelta(days=5))
date_registered = models.DateTimeField("Fecha de Registro",auto_now_add=True)
date_started = models.DateTimeField("Fecha de Inicio",null=True)
last_modified = models.DateTimeField("Ultima Vez Modificado",auto_now=True)
目前,我每周都在迭代并获取与 date_registered__week 匹配的查询集的长度与循环中的一周,并将其附加到列表中,如下所示:
project_active_week = []
for week in weeks:
if week is not None:
active_projects = [x.project_name for x in Project.objects.filter(date_registered__week = week,date_registered__year = timezone.now().year)]
project_active_week.append(len(active_projects))
我有几个这样的事情正在发生,我的应用程序变得非常慢。有没有办法更有效地执行此操作?数据库是 Sqlite。
非常感谢您的帮助!
解决方案
推荐阅读
- python - 如何在 Python 中为类包含可变的“标签”
- r - 在具有 NA 值的矩阵上使用 rcorr() 时出错
- xml - 我们可以使用 XML Schema (XSD) 添加我们自己的实体(特殊字符),例如“á”和“œ”吗?
- angular - 具有三个选择字段的 Angular 9 反应性出生日期验证
- arduino - Lilygo ttgo t-beam 和 Lora 发送或接收问题
- linux - 关于postgresql配置的基本问题
- c++ - 如何防止 libserial 吞噬来自串行设备的 0x0A、0x0D 或 0x0F 等字符?
- docker - 使用 docker 中的桥接网络将服务绑定到特定接口时连接被拒绝
- r - 在 R 中使用 tidyverse 添加新列?
- django - Django:TypeError at / context 必须是字典而不是元组