【问题标题】:Django: get top tags?Django:获得热门标签?
【发布时间】:2016-06-20 18:17:29
【问题描述】:

我正在使用 Django 和 django-taggit 应用程序。现在,我按原样传递标签:

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?谢谢你

【问题讨论】:

  • 其实我好像找到了,让我进一步检查...

标签: python django sorting tags


【解决方案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])

【讨论】:

  • 其实我找到了一个非常简单的答案。
【解决方案2】:

实际上,例如,如果将标签应用于名为 Joke 的模型,您可以简单地这样做:

tags = Joke.tags.most_common()

而且效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    • 2016-06-18
    相关资源
    最近更新 更多