我已经设置了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 %}
但这也会返回一个空列表
答案 0 :(得分:2)
我仍然想弄清楚这一点,因为我想要一个包含所有标签的列表作为包含该标签的帖子的链接。我只能通过使用django-taggit和django-taggit-templatetags来做到这一点。
根据您正在运行的Django版本,请尝试以下操作:
接下来我将尝试Django标记,因为文档更加完整。
对于Jon Clements,我是StackOverflow的新手,不知道为什么我的答案被删除了。如果您有更好的解决方案,请告知。
答案 1 :(得分:0)
这适用于django-taggit 1.3.0
:
{% for tag in posts.tags.all %}
{{ tag.name }}
{% endfor %}