所以我一直在试图弄清楚如何在模板中呈现相关对象。我一直在尝试使用模板中的查询集来做到这一点,但我可能完全错了,我需要对上下文做一些事情。无论哪种方式,我都不知道我应该做什么。
我想做的事:
获取包含将要发布的提示的查询集。
在查询集的帮助下,呈现城市的提示列表。该列表本身是站点和该站点的提示数以及特定区域的提示总数。
我想在我的模板中呈现什么
Uptown (3)
K-Jah (2)
Chatterbox FM (1)
Staunton Island (1)
Lips 106 (1)
我一直在尝试:
<table>
{% for object in object_list %}
<tr>
<th>Region</th>
</tr>
<tr>
<td>{{ object.station.region }} </td>
<tr>
<th>Station</th>
<td>{{ object.station.name }}</td>
{% endfor %}
</table>
现在这显然是错误的,我知道。它循环并多次呈现相同的区域和站点名称,并且我不呈现区域或站点在循环中出现的次数。
我的模型设置如下:
模型.py
class Tip(models.Model):
name = models.TextField(verbose_name=_('name'), blank=True, null=True)
email = models.EmailField(verbose_name=_('email'), max_length=50, blank=True, null=True)
description = models.TextField(verbose_name=_('description'), blank=True, null=True)
comment = models.TextField(max_length=255, blank=True, null=True)
published = models.BooleanField(default=False, verbose_name=_('published'))
class NamedModel(models.Model):
name = models.CharField(verbose_name=_('name'), max_length=255)
def __unicode__(self):
return u'%s' % self.name
class Region(NamedModel):
def __unicode__(self):
return u'%s' % self.name
class Station(models.Model):
name = models.CharField(verbose_name=_('name'), max_length=255)
phone = models.CharField(verbose_name=_('phone'), max_length=255, blank=True)
region = models.ForeignKey(Region, verbose_name=_('region'))
def __unicode__(self):
return u'%s' % self.name
class StationTip(Tip):
station = models.ForeignKey(Station, verbose_name=_('station'))
def __unicode__(self):
return u'%s' % self.school
查询集:
K-Jah 地区 = 住宅区
Chatterbox 地区 = 住宅区
嘴唇 106 地区 = 斯汤顿岛
StationTip.objects.all().filter(published=True)
查询集返回的内容:
[<StationTip: K-Jah>, <StationTip: K-Jah>, <StationTip: Lips 106>, <StationTip: Chatterbox FM>]