Python Django 按日期分组

Python Django group by date

我正在使用 Django 构建网络应用程序。我的一个模型是这样的:

class Change(models.Model):
   user=models.ForeignKey(User)
   project=models.ForeignKey('Project')
   starttime=models.DateTimeField(null=True,blank=True)
   endtime=models.DateTimeField(null=True, blank=True)
   worktime=models.FloatField(null=True, blank=True)#worktime is in hours
   comment=models.CharField(max_length=500)
   flagged=models.BooleanField(default=False, db_index=True)

如您所见,starttimeendtimedatetime 对象。我想 运行 sql 查询按日期对结果进行分组。但由于对象是 datetime,它们按日期和时间分组。可能吗?我查看了 Python 和 Django 文档,但没有找到任何有用的信息。谢谢。

你可以这样做

select date(starttime) as simple_date
from your_table
group by simple_date

您可以使用 datetime.datetime.date('starttime') 从 DateTimeField 中获取日期。然后看看Django docs on aggregation for grouping.