首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django-taggit从queryset创建标签云。

django-taggit从queryset创建标签云。
EN

Stack Overflow用户
提问于 2012-05-28 10:21:59
回答 4查看 2.2K关注 0票数 3

我找不到答案。所以在这里我的问题。对于一个新项目,我想使用姜戈-塔吉特

有人对如何根据当前的查询集创建标记云有建议吗?

想要的行为是从一个未过滤的列表开始--然后允许通过应用过滤器和标记来缩小结果。在开始时,标签云显示50个最常见的标签。在选择标记(或其他条件)之后,标记云应该只显示剩余的可能性。

我知道django-标记为这种情况提供了django-标记。但我更喜欢用'-taggit‘而不是’-标记‘。

EN

回答 4

Stack Overflow用户

发布于 2012-12-31 17:41:28

对于django-taggit来说,django-taggit-templatetag似乎是标签云的“去处”。

不过,它似乎不处理查询集。:(

所以,我补充说:

代码语言:javascript
复制
@register.inclusion_tag('taggit_templatetags/tagcloud_include_qs.html')
def include_tagcloud_qs(queryset):
    try:
        queryset = queryset.annotate(num_times=Count('taggeditem_items'))
    except FieldError:
        queryset = queryset.annotate(num_times=Count('taggit_taggeditem_items'))

    num_times = queryset.values_list('num_times', flat=True)

    weight_fun = get_weight_fun(T_MIN, T_MAX, min(num_times), max(num_times))
    queryset = queryset.order_by('name')
    for tag in queryset:
        tag.weight = weight_fun(tag.num_times)

    return {"tags": queryset}

代码语言:javascript
复制
templatetags/taggit_extras.py

并转到taggit_templatetag/tagcloud_include_qs.html的新文件中。

代码语言:javascript
复制
<div>
{% for tag in tags %}
<font size={{tag.weight|floatformat:0}}>{{tag}}</font> 
{% endfor %}
</div>

我在模板中像这样使用它:

代码语言:javascript
复制
{% include_tagcloud_qs my_queryset %}

我没有花太多时间看django-taggit-templatetag代码,所以可以用更好的解决方案来更新它!

PS:

我的看法是这样的:

代码语言:javascript
复制
my_queryset = Tag.objects.filter(foo__bar=baz).distinct()
票数 4
EN

Stack Overflow用户

发布于 2012-08-08 22:51:26

这个答案展示了如何构建标记云。您可以根据参数在视图中创建一个查询集,生成一个字典,并在模板中呈现它,如该答案所示。

票数 2
EN

Stack Overflow用户

发布于 2012-05-28 12:27:32

我建议用django标记。它已经有了很好的记录。我用它创造了标签云。您可以通过模型、模型实例等通过易于加载的模板标记访问标记云。这有点麻烦,但是使用.counts方法,您可以黑掉一些css来增加每个字体的大小,就像您在一个真正的标记云中看到的那样。Django-标记实际上在这方面非常出色,因为它有一个默认的模板标记,其中包含您所描述的所有内容的格式选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10783039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档