Как отсортировать модель по значениям в словаре? - PullRequest
0 голосов
/ 16 ноября 2009

В Django у меня есть модель, и у меня будет словарь с идентификаторами объектов в этой модели в качестве ключей и весом в качестве значений. Я хотел бы использовать эти веса в order_by:

MyModel.objects.filter(title__icontains=query).order_by( 'value_from_the_dictionary' )

Как заставить это работать?

Я не могу поместить веса в модель, так как они будут отличаться при каждом вызове этого представления, и я не хочу их нигде сохранять, они будут рассчитываться при каждом запросе URL.

1 Ответ

5 голосов
/ 16 ноября 2009

Сортировка по order_by выполняется базой данных, поэтому, если эти элементы отсутствуют в базе данных, вы не можете их упорядочить. Вам нужно будет получить набор запросов и затем выполнить упорядочение в Python.

qs = MyModel.objects.filter(title__icontains=query)
qs.sort(key=lambda x: mydict[x])
...