1

模型:

class Exercise (models.Model):
    name_e = models.CharField(max_length=50)

class Subject (models.Model):
    name_s = models.CharField(max_length=50)
    exercise = models.ForeignKey(Exercise)

看法:

exercise_all = Exercise.objects.all()
subject_all = Subject.objects.all()

我的 SQL 表包含通过 ForeignKey 连接的主题和练习

我将视图变量作为上下文传递给模板:

{% for e_field in exercise_all %}
<table>
<tr><th>Header</th></tr>
    {% for s_field in subject_all %}
    <tr><td>{{ e_field.name_e }}</td></tr>
    {% endfor %}
</table>
{% endfor %}

如果我有 3 种类型的练习和 10 个与练习相关的主题(subject1->exercise1、subject2->exercise1、subject3->exercise1、subject4->exercise2 等),我想在模板中显示 3 个表格并每个表格将仅显示与表格/练习相对应的 tr/subjects。我尝试使用 {% if ... in ... %} 但也许我应该在视图中执行一些功能。

4

1 回答 1

2

在这种情况下,您应该可以说:

{% for e_field in exercise_all %}
<table>
<tr><th>Header</th></tr>
    {% for s_field in e_field.subject_set.all %}
    <tr><td>{{ e_field.name_e }}</td></tr>
    {% endfor %}
</table>
{% endfor %}
于 2013-01-02T02:35:09.763 回答