Можете ли вы сделать условный заказ / перегруппировать в Django? - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть модель "статус" с полями project_id и timestamp. project_id иногда равно нулю, если статус не связан с проектом (более конкретно, если статус возникает до того, как мы узнаем, какой проект вызвал его).

Я хочу заказать выходную таблицу следующим образом:

  • групповых статусов с одинаковыми project_id вместе
  • не группировать нуль project_id с
  • упорядочить эти группы и синглтоны по последним временным меткам каждой группы / синглтона

Можно ли это сделать? Я могу почти достичь этого, просто отсортировав по отметке времени, а затем используя перегруппировку. Это "почти" правильно, потому что одну группу идентичных идентификаторов проекта можно разделить с помощью пустых символов.

Я почти уверен, что это можно сделать в SQL (GROUP BY isnull (эксперимент_ид, -id)), но разрешает ли это Django?

1 Ответ

0 голосов
/ 22 ноября 2011

для агрегирования в django, вам лучше делать raw sql, так как это намного быстрее, чем сгенерированный orm sql. Raw sql Django docs

...