Django QuerySet根据'valid_from'列选择行

时间:2017-09-11 14:42:39

标签: python django

我有一个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)

'valid_from'日期可以是过去和未来。

如果我需要'some_date'上单个产品的有效价格,那就很简单了:

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

但是,我需要一个包含给定日期所有价格的清单 如何在特定日期获得为所有(或一组)产品选择有效价格的QS?

从2017年9月1日开始,EG,小部件每个售价3美元,但从2017年10月4日开始每个售价4美元。如果要求2017年9月11日的价格,它需要找到3美元的价值 - 示例latest()查询做到了对于单个产品,但问题是如何为多个产品执行此操作。最新的一组按产品分组的价格,基本上 谢谢@PeterDeGlopper的例子!

1 个答案:

答案 0 :(得分:0)

这个怎么样?

prices = ProductPrice.objects.filter(valid_from=GIVEN_DATE).values_list('price')