Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Сортировка QuerySet'а по вычисляемому значению [RSS Feed]

#1 Ноя. 10, 2010 18:53:42

archon
От:
Зарегистрирован: 2009-11-06
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка QuerySet'а по вычисляемому значению

Есть модель, с парой числовых полей. Как получить выборку, отсортированную по разнице значений этих полей?
Пробовал создать у модели метод, типа:

def delta(self):
return self.a - selb.b
и сделать так:
Model.obects.filter(…).order_by('delta') — не получается:) Ругается, мол order_by можно только по полю модели.
Может можно просто получить выборку Model.obects.filter(…) и потом как-то ее отсортировать, т.е. без привязки к sql?

PS Вариант сделать доп. поле для модели, куда при сохранении будет записываться разница чисел не предлагать. Это я и сам знаю.



Офлайн

#2 Ноя. 10, 2010 19:45:55

Doberman26rus
От: Ставрополь
Зарегистрирован: 2009-03-16
Сообщения: 128
Репутация: +  1  -
Профиль   Отправить e-mail  

Сортировка QuerySet'а по вычисляемому значению

# 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/



подпись

Офлайн

#3 Ноя. 11, 2010 17:56:52

archon
От:
Зарегистрирован: 2009-11-06
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка QuerySet'а по вычисляемому значению

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() я и так знал.



Офлайн

#4 Ноя. 11, 2010 17:59:19

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Сортировка QuerySet'а по вычисляемому значению

Офлайн

  • Начало
  • » Django
  • » Сортировка QuerySet'а по вычисляемому значению[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version