あまり複雑ではないように見える何かで少しブロックされています。ここに私のモデル:
class Team(models.Model):
name = models.CharField('team name', max_length=200, unique=True)
class QualityStream(models.Model):
name = models.CharField('quality stream name', max_length=200, unique=True)
team = models.ManyToManyField(Team)
class Milestone(models.Model):
name = models.CharField('milestone name', max_length=200)
quality_stream = models.ForeignKey(QualityStream)
team = models.ForeignKey(Team)
ご覧のとおり、チームはいくつかの事前定義された品質ストリームと、実際に品質ストリームに属する達成すべきいくつかのマイルストーンを持つことができます。
ここに私の見解:
<p>{{team.name}}</p>
{% for stream in team.qualitystream_set.all %}
<p>{{stream.name}}</p>
{% for milestone in team.milestone_set.all %}
{% if milestone.quality_stream.id == stream.id %}
<p>{{milestone.name}}</p>
{% endif %}
{% endfor %}
{% endfor %}
アイデアは、チーム、チームに関連付けられた品質ストリーム、および品質ストリームごとにグループ化された各マイルストーンを表示することです。
Team
Quality Stream 1
Milestone 1 for Quality Stream 1
Milestone 2 for Quality Stream 1
Quality Stream 2
Milestone 1 for Quality Stream 2
Milestone 2 for Quality Stream 2
コードは問題なく動作しますが、各品質ストリームのすべてのマイルストーンをループするのはあまり快適ではありません。これを達成するためのより良い方法があるに違いないと思います。何か案は?