Как и любое достижение прогресса ORM-ы в каких-то кейсах хороши и удобны, а в некоторые моменты - раздражают.
Например, когда речь о Django и случае, когда ты хочеш выполнить raw-запрос с группировкой ( чтобы не париться с нечевидными annotate и импортом нужных агрегатных функций ) .
Пример:
r = CourseStudent.objects.raw("select course_id, count(*) as c from coursestudent group by course_id order by c")
В ответ мы видим:
Raw query must include the primary key
WTF? Как я вам воткну pk в запрос с группировкой по произвольному ключу ?
К счастью, обойти просто - вот такой запрос спокойно отработает:
r = CourseStudent.objects.raw("select course_id as id, count(*) as c from coursestudent group by course_id order by c")
- мы немного схимичили, и навесили на произвольный ключ alias, такой же как pk таблицы, к которой мы делаем наш произвольный запрос
Комментариев нет:
Отправить комментарий
Если Вы нашли ошибку у автора, у Вас есть вопрос или просто хотите поделиться чем-то полезным, то пишите - не стесняйтесь..