2015-03-02 64 views
1

我設置了django-taggit,它工作正常,所有標籤都列在管理員標籤下,我可以通過管理員和表單添加標籤。Django taggit - 將標籤檢索到模板

我有上市的模板標籤(基本上我想標題,URL和標籤的所有對象的一個​​長長的清單真正的麻煩。

目前我已經連接到模型的方法叫回標記其應返回的標籤列表對我來說,在模板中遍歷。嗯...就是...理論

Model.py

class DefaultResource(models.Model): 
# 
# This class is the parent class for all resources in the media manager 
# 
title = models.CharField(max_length=100) 
created_date = models.DateTimeField(auto_now_add=True, auto_now=False) 
edited_date = models.DateTimeField(auto_now_add=False,auto_now=True) 
level = models.ManyToManyField(AssoeLevel) 
agebracket= models.ManyToManyField(AgeBracket) 
pathway= models.ManyToManyField(AssoePathway) 
tags = TaggableManager() 
slug = models.SlugField(max_length=100,editable=False,blank=True) 
updownvotes = RatingField(can_change_vote=True) 
views = models.DecimalField(max_digits=20,decimal_places=2,default=0,blank=True) 
score = models.DecimalField(max_digits=20,decimal_places=4,default=0,blank=True) 
icon = models.CharField(max_length=254,editable=False,blank=True) 

def return_tags(self): 
    taglist = self.tags.names() 
    return taglist 

view.py

def index(request): 
context = RequestContext(request) 
default_resource_list = DefaultResource.objects.order_by('-score') 
context_dict = {'default_resource_list':default_resource_list} 
return render_to_response('mediamanager/index.html', context_dict, context) 

的index.html

{% for resource in default_resource_list %} 

    {% for tag in resource.return_tags %} 

    {{ tag }} 

    {% endfor %} 

{% endfor %} 

目前,此函數返回一個空的列表。

我也試圖把以下到模板

{% for tag in resource.tags.all %} 
{{tag.name}} 
{% endfor %} 

不過這也返回一個空列表

回答

1

我仍然在試圖弄清楚這一點,因爲我希望所有標籤的列表作爲包含該標籤的帖子的鏈接。我只能使用django-taggit和django-taggit-templatetags來做到這一點。

根據您正在運行的嘗試這些Django的版本:

  • 對於早期版本(1.5之前)

Django-taggit-templatetags

  • 1.5或更高版本(我運行1.10和這個很好)

Django-taggit-templatetags2

接下來我將嘗試使用Django標記,因爲文檔更加完整。

對喬恩克萊門茨,我是新來的StackOverflow,不知道爲什麼我的答案被刪除。如果你有更好的解決方案,請告知。