我正在构建一个应用程序来跟踪用户相互给予的业力。我希望能够在 7 天滚动期间建立一个排行榜,以及在 7 天滚动期间为您提供最多业力的人的列表。我提出了以下模型:
class KarmaAction(models.Model):
user = models.ForeignKey(User)
sender = models.ForeignKey(User)
karma = models.IntegerField()
created_at = models.IntegerField()
首先,上述模型会随着用户数量的增长而很好地扩展吗?我正在考虑删除任何超过 7 天的行。其次,我想知道如何创建一个发件人列表,以及他们在过去几天给予的业力的相应总和。也许它看起来像这样:
supporters = {'User 1': 14, 'User 2': 12, 'User 3': 7, 'User 4': 2}
有没有办法用 Django ORM 做到这一点?