Django ORM 获取每行的最新版本(内连接)

标签 django django-models orm django-rest-framework django-orm

我有一个表格(当然是简短版本),如下所示

--------------------------------------------------------
|id  | Simulation_Name  | Simulation_Version | sim_key |
--------------------------------------------------------
| 1  | MySim1           | 1                  | 10      |
| 2  | MySim1           | 2                  | 10      |
| 3  | MySim2           | 1                  | 11      |
| 4  | MySim2           | 2                  | 11      |          
--------------------------------------------------------

在前端,我只想显示每个模拟的最新版本。如果您能提供有关如何使用 Django ORM 执行此操作的任何帮助,我将不胜感激。我知道有一个 Max 字段,但仅适用于日期。 目前,我使用带有内部联接的原始 SQL 来实现此目的。 有 ORM 方面的指导吗?提前致谢

我现在就是这样做的,

SELECT  *                                   
FROM  
simulation_table AS A INNER JOIN 
(SELECT id, max(simulation_version) as max_version 
from  
simulation_table 
group by sim_key) AS B 
ON 
A.sim_key= B.sim_keyAND A.simulation_version= B.simulation_version

最佳答案

Max 应该使用整数:

from django.db.models import Max
simulations = Simulation.objects.values('name').annotate(max_version=Max('version'))

关于Django ORM 获取每行的最新版本(内连接),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54466655/

相关文章:

python - django 将关系添加到用户模型

django - 如何解决 OSError : decoder jpeg not available on centos 7

django - 如何在 django 中设置对象的到期日期?

python - django - 防止用户重复

具有多对多关系的Django表单不保存

mysql - Doctrine 自定义数据类型

python - 在 Heroku 应用程序上安装 spacy en_core_web_lg 时出错

python - Django FileField with upload_to 在运行时确定

java - 如何从表中恢复数据并将其存储到列表中?

php - Doctrine DBAL - 事务和插入外部事务