2

django-taggit をセットアップしましたが、正常に動作しています。すべてのタグが管理画面のタグの下に表示され、管理画面とフォームでタグを追加できます。

テンプレートにタグをリストするのに本当に問題があります (基本的に、タイトル、URL、およびタグを含むすべてのオブジェクトの長いリストが必要です。

現在、return tags というメソッドがモデルにアタッチされています。このメソッドは、テンプレートで反復するためのタグのリストを返す必要があります。うーん・・・それが理論です・・・

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

しかし、これも空のリストを返します

4

2 に答える 2