我已经设置了 django-taggit 并且工作正常,所有标签都列在管理员标签下,我可以通过管理员和表单添加标签。
我在模板中列出标签时遇到了真正的麻烦(基本上我想要一个包含标题、url 和标签的所有对象的长列表。
目前,我有一个名为 return tags 的方法附加到模型,它应该返回一个标签列表供我在模板中迭代。嗯……这是理论……
模型.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
视图.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)
索引.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 %}
但这也返回一个空列表