我试图根据是否设置了可选的日期时间字段来查找某个类别中的平均任务完成量。
Category(models.Model):
name = models.CharField(max_length=50, default='hello world')
Task(models.Model):
text = models.TextField()
category = models.ForeignKey(Category)
completed_at = models.DateTimeField(blank=True, null=True)
我可以使用此查询找到总计和计数
Task.objects.values('category')\
.annotate(
complete=Sum(
Case(
When(completed_at__isnull=False, then=1), default=0,
output_field=IntegerField())
),
count=Count('id'))
这会给我一个这样的清单:
[{'category': fk, 'complete': 0, count: 5}]
我可以在python中迭代数组并找到平均值。 但我想在查询中这样做。
我将如何做到这一点?