2013-01-01 256 views
1
从模型特定数据

型号:django的显示模板

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 /主题相应的表/练习。我尝试了{%if ... in ...%},但也许我应该在视图中执行一些功能。

回答

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 %} 
+0

不应s_field.name.e代替e_field? – Chris

+0

也许。我从你的例子中复制了它。 – hayavuk