你能在Django中做条件order_by /重组吗?

时间:2011-11-22 01:29:53

标签: django django-models django-queryset

我的模型“状态”包含字段project_idtimestampproject_id有时为null,如果状态与项目无关(更具体地说,如果状态发生在我们知道项目导致它之前)。

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

  • 具有相同project_id的组状态
  • 不要将project_id组合在一起
  • 按照每组/单身的最新时间戳订购这些组和单身人士

可以这样做吗?我几乎可以通过按时间戳排序,然后使用重新组合来实现它。这几乎是“正确”的,因为一组相同的project_id可以通过插入空值来分割。

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

1 个答案:

答案 0 :(得分:0)

对于django中的聚合,你最好做原始的sql,因为它比生成的orm sql更快。 Raw sql Django docs