Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 从模型中获取所有最新的()_Django_Postgresql_Optimization - Fatal编程技术网

Django 从模型中获取所有最新的()

Django 从模型中获取所有最新的(),django,postgresql,optimization,Django,Postgresql,Optimization,这是我的结构的伪视图: Offer [id, match] - Odds [id, offer_id, time) - Odds [id, offer_id, time) - ..... 要基于time属性获取最新对象,我只需执行someOffer.latest()。我的问题是查询多个报价的latest()。我开始在offer.objects.filter中使用o的[offer.lobbs.latest()]——这显然是太多的查询,因此速度非常慢。然后我构造了这个查询

这是我的结构的伪视图:

Offer [id, match]
    - Odds [id, offer_id, time)
    - Odds [id, offer_id, time)
    - .....
要基于
time
属性获取最新对象,我只需执行
someOffer.latest()
。我的问题是查询多个报价的
latest()
。我开始在offer.objects.filter中使用o的
[offer.lobbs.latest()]
——这显然是太多的查询,因此速度非常慢。然后我构造了这个查询

Odds.objects.annotate(max_time=Max('offer__odds__time')).filter(time=F('max_time'))
这要快得多。然而,这在很大的概率上是非常非常缓慢的(>100000)。有没有人能很好地获取所有“最新”的多个对象


非常感谢,

在原始SQL中,您可以在FROM子句中加入一个子查询,该子查询找到了每个对象的最大值(…)。但我不知道如何用Django ORM ish来表达,我认为使用这个:可能会有所帮助。