2015-03-02 45 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,不知道为什么我的答案被删除。如果你有更好的解决方案,请告知。