Найти - Пользователи
Полная версия: Выборка в обратном порядке
Начало » Django » Выборка в обратном порядке
1 2
Mutagena
Подскажите, как выбрать все элементы из базы в обратной порядке. В djangobook описано, как применять обратную сортировку, только если выбираешь по определённому критерию, а как выбрать все записи непонятно.
Вот так я выбираю все записи:

post_list = Post.objects.all()

А как выбрать тоже самое, но в обратном порядке?
poltergeist
Post.objects.all().order_by('-id')
Mutagena
poltergeist благодарю :)
dissdoc
А если я не ошибаюсь можно проще))) Причем с подходом DRY

Добавить в модель подкласс
class Meta:
ordering = ('-id',)
Александр Кошелев
dissdoc
А если я не ошибаюсь можно проще)))
А чем это проще?
dissdoc
Причем с подходом DRY
Причем тут DRY?

Вообще, ради одного юзкейса менять поведение всей системы глупо.
Mutagena
Daevaorn, в моём случае это подошло, так как когда выбираю данные из этой таблицы, их всегда нужно выбирать в обратном порядке.
Александр Кошелев
Mutagena
Daevaorn, в моём случае это подошло, так как когда выбираю данные из этой таблицы, их всегда нужно выбирать в обратном порядке.
Ок. Только хочу предупредить, что
poltergeist
Post.objects.all().order_by('-id')
не дает обратный порядок относительно
Mutagena
Post.objects.all()
т.к. порядок в общем случае не определен в исходном варианте.
tezro
Mutagena
Подскажите, как выбрать все элементы из базы в обратной порядке. В djangobook описано, как применять обратную сортировку, только если выбираешь по определённому критерию, а как выбрать все записи непонятно.
Вот так я выбираю все записи:

post_list = Post.objects.all()

А как выбрать тоже самое, но в обратном порядке?
http://docs.djangoproject.com/en/dev/ref/models/querysets/#reverse

post_list = Post.objects.all().reverse()

Сортировать по “-id” неправильно. А если сортировка идёт по другому PrimaryKey или в Мета другая сортировка?

Post.objects.all().order_by('-pk') хотя бы…
Александр Кошелев
tezro
reverse работает только если сортировка указана явно или дефолтом в моделе.
tezro
Daevaorn
Mutagena
Подскажите, как выбрать все элементы из базы в обратной порядке.
post_list = Post.objects.all() - в дефолтном порядке
post_list = Post.objects.all().reverse() - в обратном.

Вроде это и есть задача. Сортировка по PK или другому полю, вроде уже другое решение.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB