我有一个下载模型。我想存储 每个实例的下载频率。
我可以存储一个计数,但这看起来很简单。旧文件似乎更受欢迎。我的意思是对上传日期的平均值,但这使得新的几乎总是更好。我不一定想要排名,但我想向管理文件的人显示有意义的数据,如:
是否有一个字段,方法或某种通用插件,我可以添加到我的模型中以存储速率,以便我有类似的东西?
编辑:我觉得做“最后的x”意味着必须以某种方式存储每个具有日期时间的实例,直到它们落到最后(并且仅适用于总数)。我愿意采用效率稍高的解决方案,减少客户流失。
答案 0 :(得分:1)
您尚未说明您将处理多少记录/下载,但这样做的简单方法是创建DownloadCount
模型。也许是这样的:
class DownloadCount(models.Model):
date = models.DateField(auto_now_add=True)
item_downloaded = models.ForeignKey(Downloads)
然后,您就可以根据日期字段生成指标。
类似的东西:
DownloadCount.objects.filter(
date__range=(state_date, end_date),
item_downloaded=<Download-Model>
).count()
显然,缓存此类结果非常有利。
如果您想让结果更准确一些,您还可以在模型中添加IPAddressField
,使DownloadCount
条记录基于IP地址和日期唯一。{/ p>