如何在所有页面上获取Django分页唯一商品ID?

时间:2019-01-27 07:04:10

标签: django pagination

我正在学习如何实现Django分页。 我想让用户在单击“全部保存”按钮时保存所有更改(无论是哪个分页的整个表单)。但是,当使用 forloop.counter0 时,django将渲染重复的forloop计数器。 如何生成从0到n-1的连续唯一ID,以便在views.py中,视图可以识别每个项目?谢谢!

{% for thing in things %}
    <tr id="tr-{{ thing.id }}">
        <td style="display:none"><input type="text" name="hidden-id-{{ forloop.counter0 }}" value="{{ thing.id }}"></td>

    </tr>
{% endfor %}

是否存在诸如添加pagecounter和forloop计数器之类的方法?

1 个答案:

答案 0 :(得分:0)

经过反复试验: 我发现django默认(或可能总是)不允许我们在所有页面上保存内容(分页)。 要在所有页面上生成唯一的ID,我们可以使用 | add 过滤器以及django自动生成的start_index属性。

 {% for thing in things %}
          <tr id="tr-{{ thing.id }}">
            <td style="display:none"><input type="text" name="hidden-id-{{ things.start_index |add:forloop.counter0 }}"  value="{{ thing.id }}"></td>
          </tr>
 {% endfor %}