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を使用しますか?

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

答えて

1

実際にあるという利点があります:タグがリストに格納されていると仮定すると

1

ありがとうございますJokeというモデルに適用すると、これを簡単に行うことができます:

tags = Joke.tags.most_common() 

それはうまく動作します。

+0

私は実際に本当に簡単な答えを見つけました。 – Antoni4040

+0

それを聞いてうれしい! –

関連する問題