Форум сайта python.su
Как замутить на ОРМ аналог такого запроса:
SELECT * FROM `table` order by (id>5)
Офлайн
Прочитать документацию, немного подумать…
.objects.filter(id>5).order_by('id')
Отредактировано (Май 21, 2009 14:28:49)
Офлайн
Ferromanа точно результат будет идентичен?)
.objects.filter(id>5).order_by('id')
Офлайн
Нет не будет. А должен? Как по мне то такой запрос мне кажется весьма странным… Но, тем не менее.
Хотите абсолютно точно - пользуйтесь extra.
Офлайн
Ferromanну может в таком контексте меннее странным покажется тогда) :
Как по мне то такой запрос мне кажется весьма странным…
SELECT * FROM `text` order by (rating>0),date
Офлайн
Все равно странный :)
Почему просто не сделать order_by('rating')?
Офлайн
FerromanТам такая задача на главной странице есть список объектов у которых есть рейтинг,
Почему просто не сделать order_by('rating')?
Офлайн
order_by('rating', ‘date’)
Тогда все нулевые будут и так внизу.
Офлайн
FerromanНо новые с + рейтингом не будут вверху)
Тогда все нулевые будут и так внизу.
Офлайн
Evg
А, нет, тогда не так Надо тогда сортировать по дате, а потом - по рейтингу. Тогда новые с высшим рейтингом будут вверху, в порядку убывания и даты, и рейтинга.
order_by('date', ‘rating’)
Проверьте.
Офлайн