【问题标题】:Comparing multiple forloop.counter values in templates比较模板中的多个 forloop.counter 值
【发布时间】: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 值。

【问题讨论】:

    标签: python django jinja2


    【解决方案1】:

    作业是否使用 jinja 语法?

    我建议在单独的 python def 中实现这个逻辑,然后通过一个 for 循环准确地传递你需要渲染的内容。使模板尽可能简单。

    【讨论】:

      猜你喜欢
      • 2019-02-26
      • 2022-12-29
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      • 2022-08-07
      • 2017-06-28
      • 2021-08-25
      相关资源
      最近更新 更多