そのため、テンプレートで関連オブジェクトをレンダリングする方法を理解しようとしています。テンプレートのクエリ セットを使用して実行しようとしましたが、完全に間違っている可能性があり、代わりにコンテキストを使用して何かを行う必要があります。いずれにせよ、私は自分が何をすべきかわかりません。
私がしたいこと:
公開されるヒントを含むクエリ セットを取得します。
クエリ セットの助けを借りて、都市のヒントのリストをレンダリングします。リスト自体は、駅とその駅のヒントの数、および特定の地域のヒントの総数です。
テンプレートでレンダリングしたいもの
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>
これは明らかに間違っており、私はそれを知っています。ループ オーバーし、同じ地域と駅名を数回レンダリングします。地域または駅がループに表示される回数はレンダリングしません。
私は以下のようにモデルをセットアップしています:
models.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地域=アップタウン
チャターボックス地域 = アップタウン
リップス 106 地域 = スタントン島
StationTip.objects.all().filter(published=True)
クエリセットが返すもの:
[<StationTip: K-Jah>, <StationTip: K-Jah>, <StationTip: Lips 106>, <StationTip: Chatterbox FM>]