在Django QuerySets中,是否可以通过自定义SQL进行排序?

时间:2013-06-21 17:05:29

标签: django django-orm

我有一个QuerySet,我从许多过滤查询中合成。我想通过自定义SQL表达式来订购它。具体来说,这是我想要附加到查询的ORDER BY部分:

... 
ORDER BY
greatest(`ff_answer`.`update_ts`,
         if(max(`ff_comment`.`create_ts`) is null,
            '2001-01-01 00:00:01',
             max(`ff_comment`.`create_ts`)
           )
 )

是否可以在Django中执行此操作?我并不担心便携性。理想情况下,我想做这样的事情:

my_qs = my_qs.order_by_custom_sql('greatest(`ff_answer`.`update_ts`,
             if(max(`ff_comment`.`create_ts`) is null,
                '2001-01-01 00:00:01',
                 max(`ff_comment`.`create_ts`)
               )
     )'
)

我对一次性黑客持开放态度。我唯一的要求就是我可以将结果传递给Django的分页器。

0 个答案:

没有答案