Django taggit - 将标签检索到模板中

时间:2015-03-02 09:33:06

标签: django django-templates django-views django-taggit

我已经设置了django-taggit并且工作正常,所有标签都列在管理员的标签下,我可以通过管理员和表单添加标签。

我在模板中列出标签时遇到了麻烦(基本上我想要一个包含标题,网址和标签的所有对象的长列表。

目前我有一个名为return标签的方法附加到模型上,该方法应该返回一个标签列表供我在模板中迭代。嗯......这就是理论......

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 %}

但这也会返回一个空列表

2 个答案:

答案 0 :(得分:2)

我仍然想弄清楚这一点,因为我想要一个包含所有标签的列表作为包含该标签的帖子的链接。我只能通过使用django-taggit和django-taggit-templatetags来做到这一点。

根据您正在运行的Django版本,请尝试以下操作:

  • 早期版本(1.5之前)

Django-taggit-templatetags

  • 1.5或更高(我运行1.10,这很有效)

Django-taggit-templatetags2

接下来我将尝试Django标记,因为文档更加完整。

对于Jon Clements,我是StackOverflow的新手,不知道为什么我的答案被删除了。如果您有更好的解决方案,请告知。

答案 1 :(得分:0)

这适用于django-taggit 1.3.0

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