我正在尝试建立一个django应用程序,在那里我可以跟踪产品价格。该应用程序会定期获取新的价格,并将其图形化,并显示最近的价格变化历史。在
我每天检查一次价格,然后把价格加上日期时间戳保存到我的模型上。在
在模型.py在
Class Product(models.Model):
title = models.CharField(max_length=255)
Class Price(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
date_seen = models.DateTimeField(auto_now_add=True)
price = models.IntegerField(blank=True, null=True)
除了产品的当前价格,我还想展示我收集的所有价格数据的max和min。我想得到这个值,以及它在这个值上的日期。到目前为止,我可以得到值,但我不能得到相应的日期。我用的是:
^{pr2}$有什么建议吗?提前谢谢!在
编辑:根据回复,我有以下内容。我的问题是我得到的最高价格和最高日期相互独立。我想要最高价格和最高价格的日期在同一响应。在
def price_hla(self):
return
Product.objects.filter(price__product=self)[:1].annotate(Max('price__price'), Max('price__date_seen'))`
试试这个:
这将给你在结果对象中的最高价格和日期。在
但是我想不出一种方法可以同时在同一个查询中找到最低价格/日期。我也有一种感觉,如果你有大量的项目,这将是非常缓慢的。在
弄清楚了,我就得到了我想要的。如果有人读到这篇文章,我很乐意得到反馈,如果这是最好的做法,或者我将超载我的数据库。在
因为我需要实际价格和最高价格的日期,所以我需要返回整个价格对象。所以我通过重写默认的
get_context_data
方法在DetailView上编写了一些查询集。在在视图.py在
然后我使用
high.price
和high.date_seen
等将其拉入我的模板中相关问题 更多 >
编程相关推荐