我有两个模型,一个以多对多关系引用另一个模型(BannerProject 对象可能包含 BannerEntry 对象的多个实例):
class BannerEntry(models.Model):
title = models.CharField(max_length=100, unique=False, blank=False, null=False)
has_static = models.BooleanField()
has_flash = models.BooleanField()
static_preview = models.FileField(upload_to=content_banner_page, blank=True, null=True, max_length=300)
static_zip = models.FileField(upload_to=content_banner_page, blank=True, null=True, max_length=300)
...
class BannerProject(models.Model):
client = models.CharField(max_length=50, choices=CLIENT_CHOICES)
project_name = models.CharField(max_length=100, unique=False, blank=False, null=False)
parent_page = models.ForeignKey(BannerPage, blank=True, null=True)
banner_entry = models.ManyToManyField(BannerEntry)
def __unicode__ (self):
return u'%s %s' % (self.client, self.project_name)
class Admin:
pass
运行一个基本的视图函数:
def display_bannerpage(request, client):
records = BannerPage.objects.filter(client=client)
bprjrecords = BannerProject.objects.filter(client=client)
tpl = 'clientportal_tmps/bannerpage.html'
return render_to_response(tpl, { 'records': records, 'bprjrecords': bprjrecords })
我想在模板中显示它们(BannerProject、子 Entry1 字段、childEntry2 字段、子 Entry3 字段……下一个 BannerProject 等……):我当前的模板看起来像:
{% if bprjrecords %}
{% for bprjrecord in bprjrecords %}
{% for banner_entry in bprjrecord %}
{{ banner_entry.title }}
{{ banner_entry.static_preview }}
{{ banner_entry.static_zip }}
{% endfor %}
引发 TypeError “'BannerProject' 对象不可迭代”
什么是允许我访问 BannerEntry 数据以便在模板中显示它的正确模板语言?