モデル:
class Program (models.Model):
name = models.CharField(max_length=70)
add = models.DateTimeField(auto_now=True)
class Subject (models.Model):
s_name = models.CharField(max_length=50)
program = models.ForeignKey(Program)
s_add = models.DateTimeField(auto_now=True)
データベースには、次のような同じ行がすでに追加されています。
app_programテーブル内:
id | name | add
1 | Program1 | some date
2 | Program2 | some date
3 | Program3 | some date
app_subject:
id | s_name | program | add
1 | subject1 | 1 | some date
2 | subject2 | 2 | some date
3 | subject3 | 1 | some date
4 | subject4 | 2 | some date
5 | subject5 | 3 | some date
テンプレートで、次のようなforループでデータを表示したいと思います。
1. Program1
1. subject1
2. subject3
2. Program2
1. subject2
2. subject4
3. Program3
1. subject5
ビューとテンプレートに何を入れるべきかわかりません。私はもう試した:
from app.models import Program, Subject
program_all = Program.objects.all()
subject_all = Subject.objects.all()
次に、コンテキスト変数などとしてテンプレートに渡します。これをテンプレートで使用する場合:
{% for field in program_all %}
{{ forloop.counter }}. {{ field.name }}
{% for field2 in subject_all %}
{{ field2.s_name }}
{% endfor %}
{% endfor %}
既存のすべてのサブジェクトを含むすべてのプログラムを表示するだけで、プログラムに接続されているサブジェクトのみを表示したいと思います。