2015-10-20 59 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

回答