Django QuerySet根据“valid\u from”列选择行

2024-04-25 02:04:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Django模型,其产品价格取决于日期,类似于:

Class ProductPrice(models.Model):
    product = models.ForeignKey(Product, related_name='prices')
    valid_from = models.DateField()
    price = models.DecimalField(max_digits=7, decimal_places=2)

“有效起始日期”可以是过去和将来。你知道吗

如果我需要“某个日期”的单个产品的有效价格,那么很简单:

price = product.prices.filter(valid_from__lte=some_date).latest('valid_from')

但是,我需要一份包含给定日期所有价格的清单。
我怎样才能得到一个QS来选择某个日期后所有(或一组)产品的有效价格?你知道吗

例如,widgets从2017年9月1日起每个售价3美元,但从2017年10月4日起每个售价4美元。如果询问2017年9月11日的价格,它需要找到$3的值-示例latest()查询对单个产品执行此操作,但问题是如何对多个产品执行此操作。基本上是按产品分组的最新价格。
感谢@PeterDeGlopper提供的示例!你知道吗


Tags: djangofrom模型示例产品models价格product