2014-02-14 2 views
1

Я бегу рамки бутылки и MongoDB. В словаре ниже мне нужно отсортировать субкоды после ранга. Mongo не поддерживает сортировку вспомогательных документов (если я не сортирую с помощью $ push), и я бы предпочел сделать сортировку по «рангу» для медиа-массива в python и шаблоне.Сортировка на подпикселе бутылки python

«запись»:

{ 
"_id" :"...", 
"author" : "...", 
"body" : "...", 
"date" : ..., 
"media" : [ 
      { 
        "caption" : "Drone", 
        "rank" : "2", 
        "media_link" : "34.jpg" 
      }, 
      { 
        "caption" : "Tea drinker", 
        "rank" : "1", 
        "media_link" : "87.jpg" 
      }, 
      { 

        "caption" : "Daniele", 
        "rank" : "3", 
        "media_link" : "54.jpg" 
      } 
    ], 

} 

шаблон кода, где я хотел бы сделать своего рода рангом.

%if ('media' in entry): 
%numMedia = len(entry['media']) 
%else: 
%numMedia = 0    
%end 


%for i in range(0, numMedia): 
<td valign="top"> 
<img width='200' src='{{entries['media'][i]['media_link']}}'><br> 
Media Caption: {{entries['media'][i]['caption']}}<br> 
Rank: {{entries['media'][i]['rank']}}</td> 
%end 

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

ответ

1

Здравствуйте и добро пожаловать TomSjogren, В основном вам нужно отсортировать список наборов вроде этого:

media = entry['media'] 
sorted_media = sorted(media, key=lambda m:m['rank']) 

Я не знаком с Джанго, но я думаю, что это будет так, то:

%for m in sorted_media: 
    <td valign="top"> 
    <img width='200' src='{{m['media_link']}}'><br> 
    Media Caption: {{m['caption']}}<br> 
    Rank: {{m['rank']}}</td> 
%end 
+0

Работали отлично, как вы выразились. Я использую Bottle not Django, но очень похоже, конечно. Tnx !! – TomSjogren

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