我有一个看起来像这样的模型:
class Deal(models.Model):
sender = models.ForeignKey(settings.AUTH_USER_MODEL)
created_on = models.DateField(auto_now_add=True)
recipient = modes.ForeignKey(settings.AUTH_USER_MODEL)
...
我想获取今天结束的三个月窗口内特定用户发送或接收的每日交易计数。为了进一步复杂化,我希望以 JSON 格式序列化该数据集,以便输出如下所示:
{
"timestamp_1": count_1,
"timestamp_2": count_2,
...
"timestamp_n": count_n
}
到目前为止,我已经得到了一个看起来像这样的查询:
# Assume we have a user object called "user"
Deal.objects.filter(Q(sender=user) | Q(recipient=user)).extra({'date_created' : "date(created_on)"}).values('date_created').annotate(created_count=Count('id'))
仍在梳理文档,但有没有人有更好的方法来解决这个问题?