你能用Django做条件排序吗?

你能用Django做条件排序吗?,django,django-models,django-queryset,Django,Django Models,Django Queryset,我有一个带有字段project\u id和timestamp的模型“status”project\u id有时为空,如果状态与项目无关(更具体地说,如果状态发生在我们知道是什么项目导致它之前) 我想按如下方式订购一个输出表: 将具有相同项目id的状态分组在一起 不要将nullproject\u ids分组在一起 按每个组/单例的最新时间戳对这些组和单例进行排序 这能做到吗?我几乎可以通过按时间戳排序,然后使用重组来实现它。这是“几乎”正确的,因为一组相同的项目ID可以通过插入null来分割

我有一个带有字段
project\u id
timestamp
的模型“status”
project\u id
有时为空,如果状态与项目无关(更具体地说,如果状态发生在我们知道是什么项目导致它之前)

我想按如下方式订购一个输出表:

  • 将具有相同
    项目id的状态分组在一起
  • 不要将null
    project\u id
    s分组在一起
  • 按每个组/单例的最新时间戳对这些组和单例进行排序
这能做到吗?我几乎可以通过按时间戳排序,然后使用重组来实现它。这是“几乎”正确的,因为一组相同的项目ID可以通过插入null来分割


我很确定这可以在SQL中完成(GROUP BY isnull(experiment_id,-id)),但Django允许吗?

对于Django中的聚合,最好使用原始SQL,因为它比生成的orm SQL快得多

太棒了,我不知道你能做到。