Найти - Пользователи
Полная версия: Сортировка QuerySet'а по вычисляемому значению
Начало » Django » Сортировка QuerySet'а по вычисляемому значению
1
archon
Есть модель, с парой числовых полей. Как получить выборку, отсортированную по разнице значений этих полей?
Пробовал создать у модели метод, типа:
def delta(self):
return self.a - selb.b
и сделать так:
Model.obects.filter(…).order_by('delta') — не получается:) Ругается, мол order_by можно только по полю модели.
Может можно просто получить выборку Model.obects.filter(…) и потом как-то ее отсортировать, т.е. без привязки к sql?

PS Вариант сделать доп. поле для модели, куда при сохранении будет записываться разница чисел не предлагать. Это я и сам знаю.
Doberman26rus
# This list contains a dictionary.
>>> Blog.objects.filter(name__startswith='Beatles').values()
[{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}]
или
>>> Entry.objects.values_list('id', 'headline')
[(1, u'First entry'), ...]
и сортируй списки, как душе угодно=)
а вобще почитай тут: http://docs.djangoproject.com/en/dev/ref/models/querysets/
archon
Doberman26rus
# This list contains a dictionary.
>>> Blog.objects.filter(name__startswith='Beatles').values()
[{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}]
Ну получил я список из словарей. Как мне его отсортировать-то?
А то, что есть метод .values() я и так знал.
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