Django:在日期时间字段上按日期分组

Rez*_*adi 2 django django-models django-orm

例如,我有一个这样的模型:

class Transaction(models.Model):
    amount = models.FloatField()
    seller = models.ForeignKey(User, related_name='sells', on_delete=models.CASCADE)
    buyer = models.ForeignKey(User, related_name='purchased', on_delete=models.CASCADE)
    created_at = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

我想按每个日期分隔的所有交易分组并找到其中一些。如果created_at是类型,DateField我可以通过这个查询简单地找到每天的计数:

Transaction.objects..values('created_at').annotate(count=Count('created_at_date')
Run Code Online (Sandbox Code Playgroud)

但这不起作用 DateTimeFeilds

我的问题是如何找到此模型类型每个日期的交易总数。

cod*_*ude 9

以下内容适用于django 2.1及更高版本。

 Transaction.objects.values('created_at__date').annotate(count=Count('id')).values('created_at__date', 'count').order_by('created_at__date')
Run Code Online (Sandbox Code Playgroud)

您需要__date在名称之后使用进行查找,并需要order_by在末尾放置一个。

不确定以前的 Django 版本。