2016-06-20 2 views
1

Я использую Django и приложение django-taggit. На данный момент я передаю теги такими, какие они есть:Django: получить верхние теги?

def tags_page(request): 
    """A page that displays all the tags.""" 
    tags = Tag.objects.all() 
    response = render(request, 'tags_page.html', {'tags': tags}) 
    return response 

Чтобы сделать страницу со всеми из них. Я не совсем уверен, как они передаются, но я хочу сначала поместить верхние теги, сортировать их в зависимости от того, как они используются. Но я не знаю, как это сделать. Я каким-то образом использую order_by? Спасибо

+0

На самом деле, я думаю, я нашел его, позвольте мне проверить дальше ... – Antoni4040

ответ

1

На самом деле, если, например, метки применяется к модели под названием «Шутка», вы можете просто сделать это:

tags = Joke.tags.most_common() 

И все работает отлично.

1

Предполагая, что метки сохраняются в списке:

sorted(lst, key=lst.count, reverse=True) 

collections.Counter также работает и имеет преимущество в том, O(n)

counts = collections.Counter(lst) 
new_list = sorted(lst, key=lambda x: -counts[x]) 
+0

На самом деле я нашел очень простой ответ. – Antoni4040

+0

Рад это слышать! –

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