Django:在日期时间字段上按日期分组
Django: Group by date over a datetime field
我有一个这样的模型:
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)
我想按每个日期分隔的所有交易进行分组并找到其中一些。如果 created_at
是 DateField
类型,我可以通过这个查询简单地找到每天的计数:
Transaction.objects..values('created_at').annotate(count=Count('created_at_date')
但这不起作用 DateTimeFeilds
。
我的问题是如何找到此模型类型每个日期的交易总数。
以下内容适用于 django 2.1 及更高版本。
Transaction.objects.values('created_at__date').annotate(count=Count('id')).values('created_at__date', 'count').order_by('created_at__date')
您需要在名称后使用__date
进行查找,并且需要在末尾添加一个order_by
。
不确定以前的 django 版本。
我有一个这样的模型:
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)
我想按每个日期分隔的所有交易进行分组并找到其中一些。如果 created_at
是 DateField
类型,我可以通过这个查询简单地找到每天的计数:
Transaction.objects..values('created_at').annotate(count=Count('created_at_date')
但这不起作用 DateTimeFeilds
。
我的问题是如何找到此模型类型每个日期的交易总数。
以下内容适用于 django 2.1 及更高版本。
Transaction.objects.values('created_at__date').annotate(count=Count('id')).values('created_at__date', 'count').order_by('created_at__date')
您需要在名称后使用__date
进行查找,并且需要在末尾添加一个order_by
。
不确定以前的 django 版本。