2015-10-20 61 views
0

我有以下型号:Django ORM for select max(field1)from table group by(field2);

class Transition(models.Models): 
    id = models.AutoField(primary_key=True) 
    transition_type = models.IntegerField(dbcolumn='transition_typeid') 
    instance = models.IntegerField(dbcolumn='instanceid') 
    ts = models.DateTimeField() 
    class Meta: 
    managed=False 
    db_table = 'transitions' 

我想用Django的ORM发出以下查询:

select max(id) from transitions group by(instanceid); 

我知道我可以按如下方式使用原始查询:

Transition.objects.raw('select max(id) from transitions group by (instanceid)') 

然而,缺点是查询似乎立即执行和 不借给它自我进一步过滤,例如我想得到一个查询 设置,可以应用进一步的过滤器说时间戳。

有没有办法使用纯粹的ORM方式发出上面的select语句而不使用Django的原始查询?

+5

检查了这一点:http://stackoverflow.com/questions/6940255/django-orm-group-by-and-max – gplayer

回答