首页 > 解决方案 > 是否有 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。

非常感谢您的帮助!

标签: pythonjsondjangosqlite

解决方案


推荐阅读