2015-06-18 4 views
0

myFrom две модели в django. Я создал список словарей, в которых каждый диктар - это строка в таблице, которую я показываю на клиенте.Сортировка списка со словарями, django

Я хотел был бы иметь возможность сортировать этот список для каждой из «столбцов».

objdict = []  
mydict = { 
    'thing1': model1.val1, 
    'thing2': model2.val1, 
    'thing3': model2.val2, 
    'thing4': model1.val2, 
    'thing5': model1.val3, 
} 
objdict.append(mydict) 

Скажите, что я хотел бы отсортировать этот список на thing1 в порядке возрастания. Как я мог добиться этого?

+3

'sorted (objdict, key = operator.itemgetter ('thing1'))'? – jonrsharpe

+1

Не скрывайте встроенную конструкторскую функцию '' dict''. –

+0

Нет, это не сработало, функция, которая, как предполагается, должна быть разбита и выбросила исключение. – Eitre

ответ

3

Вы просто должны быть в состоянии сделать:

sorted_objects = sorted(objdict, key=lambda k: k['thing1']) 

получит вы возрастающий порядок. Для спуска:

sorted_objects = sorted(objdict, key=lambda k: k['thing1'], reverse=True) 
+0

Да, я думаю, что это работает. Как я вообще спускаюсь? – Eitre

+1

Я добавил пример по убыванию. – Brandon

Смежные вопросы