我有一个名为PointsHistory的模型。
class PointsHistory(...):
created_at = models.DateTimeField(auto_now_add=True)
points = modes.IntegerField()
user = models.ForeignKey(User)
我需要得到记录存在的最后一天积分。假设我们确实有昨天的数据。
today = datetime.today()
yestrerday = today + timedelta(days=-1)
lastpoint = PointsHistory.objects.filter(user = request.user, created_at__startswith = yestrerday.date()).aggregate(Sum('points'))
但是如果我们没有yersterday的记录,这将失败,我仍然需要最后记录日期总和。我怎么能这样做?
Order By无效,因为它是一个datetime字段。 (如果我按(日期)排序并得到0索引元素我得到我想要的东西。)
如果需要在最后一个入场日获得所有硬币的总和,假设在6月13日插入了一条记录,所以我需要当天所有硬币的总和。
我需要在没有硬编码6月13日的情况下使其成为通用的
答案 0 :(得分:0)
我现在无权访问我的沙箱,但这应该可行(我不知道你的字段,但它应该没问题):
lastpoint = PointsHistory.objects.filter(user=request.user, created_at__lte=yesterday.date()).aggregate(Sum('points'))
最新也应该有效: https://docs.djangoproject.com/en/1.6/ref/models/querysets/#latest