【发布时间】:2019-04-13 22:22:10
【问题描述】:
我有一个家庭作业,希望我们创建一个成绩簿表,该表将保留在点击提交之前输入的相同值,我实际上无法将这些值设置为保留,但我确实有“ assignments”在一个表中,所以我知道它可以完成,但我只是一个有 django 模板的菜鸟,什么都没有。
我曾尝试多次执行渲染方法并循环遍历此分数列表,但显然多次渲染表格有其自身的问题,现在我正在尝试遍历学生、作业和成绩列表(可能是一种非常低效的方式)在 Django 模板中,但要获得预期的结果,我必须有 3 个嵌套循环,并且只有在外部两个循环的索引匹配内部循环的某些约束时才创建一个表的单元格(参见代码如下)。
VIEWS.PY:
scores = list(models.Grade.objects.all().values_list('score', flat=True))
students = list(models.Student.objects.all().values_list('id', flat=True))
items = list(models.Item.objects.all().values_list('item_name', flat=True))
return render(request, 'main/index.html', {"row": students, "col": items, = "scores": scores})
INDEX.HTML:
{% for i in row %}
<tr><th>{{i}}</th>
{% for j in col %}
{% for k in scores %}
{% if forloop.counter == ((forloop.parentloop.counter + 1) * (forloop.parentloop.parentloop.counter + 1) - 1 %}
<td><input name="{{i}}_{{j}}" type="number" value="{{ k }}"/></td>
{% endif %}
{% endfor %}
{% endfor %}
</tr>
{% endfor %}
预期结果最终会使用与上次输入的相同单元格值或成绩表中的相同单元格值呈现表格,但问题是在 if 循环中它会引发错误,提示“ID 或文字预期" 并且似乎来自于修改 **loop.counter 值。
【问题讨论】: