モデル:
class Subject (models.Model):
name = models.CharField(max_length=50)
day = models.CharField(max_length=50)
私のSQLテーブルには50人以上のユーザーがいて、全員が週に1日を割り当てています(つまり、user1 -> MON、user2 -> MON、user3 -> WED ...)
以下のテンプレートでは、曜日とサブジェクト名を含むテーブルを表示したいのですが、ユーザー グループのヘッドとして1 回だけ曜日名を表示したいと考えています。
<table>
<tr class="head"><th>SUBJECTS</th></tr>
{% for field in subjects_all %}
{% if forloop.first %}
<tr class="head"><td colspan=5 align="center">MONDAY</td></tr>
{% endif %}
{% if field.day == "MON" %}
<tr><td>{{ field.name }}</td></tr>
{% endif %}
{% if ... } # <- ???
<tr class="head"><td colspan=5 align="center">TUESDAY</td></tr>
{% endif %}
{% if field.day == "TUE" %}
<tr><td>{{ field.name }}</td></tr>
{% endif %}
(...)
{% endfor %}
</table>
以下の例では、forloop.first を使用して月曜日を 1 回だけ表示できることはわかっていますが、ユーザー グループの一番上に残りの日を1 回だけ表示するにはどうすればよいでしょうか。通常の 'if' を実行すると、データベースで見つかったすべてのユーザーの上に TUESDAY が表示されますが、それは私が望むものではありません。
編集: そして、一週間の毎日のために for ループ全体を7回コピーすることを避けたい