django-taggit-templatetags似乎是django-taggit的tagcloud的'前往'的地方。
雖然它似乎不處理查詢集。 :(
所以,我說:
@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}
到
templatetags/taggit_extras.py
這在taggit_templatetags /新文件tagcloud_include_qs.html
<div>
{% for tag in tags %}
<font size={{tag.weight|floatformat:0}}>{{tag}}</font>
{% endfor %}
</div>
我在我的模板中使用它像這樣:
{% include_tagcloud_qs my_queryset %}
我沒有花太多時間看django-taggit-templatetags代碼,所以隨時用更好的解決方案來更新它!
PS:
我得到一個QuerySet在我看來是這樣的:
my_queryset = Tag.objects.filter(foo__bar=baz).distinct()
是的,也許我會去與Django的標記。這只是我在很多其他項目中使用* -taggit。而且唯一缺少的東西(usage_for_queryset)似乎在* -tagging中很麻煩:http:// goo。gl/gjmNV – ohrstrom
我假設您正在查找queryset用法,那麼您希望從各種對象中檢索標籤並將它們組裝到一個位置。如果是這種情況,我會編輯我的問題以反映並可能包括您正在使用的視圖和模型。這裏是queryset API文檔https://docs.djangoproject.com/en/dev/ref/models/querysets/。模板標籤可能會有所幫助。請注意具有ListView.as_view(model = Author)與定義queryset Author.objects.all()相同。當你在模型實例中獲得對Model.entry_set – eusid