gpt4 book ai didi

javascript - 如何使用 Django 获取正在 HTML 中呈现的对象的索引

转载 作者:行者123 更新时间:2023-11-29 10:42:19 25 4
gpt4 key购买 nike

我正在网页上使用 Django 显示 mysql 数据库。我将 views.py 中的数据库渲染为 obj 并在 index.html 中使用它。我想知道是否可以获得这个对象obj的索引?即,在同一个循环迭代中,我想要下一行的值,例如在第 10 行的迭代中,使用 {{ b.col2 }} 我获得第 10 行的 col2 值,如何获得第 11 行row 的 b.col2 值在同一循环迭代中并将其存储在临时变量中以进行比较。有没有办法获取对象的索引?

  <script> 
var i = 1; </script>
{% for b in obj %}

<tr>
<td>{{ b.col1 }}</td>
<td><span class="wrapped"><span>{{ b.col2 }}</span></span> </td>
<td id='myTable'></td>
<td id='myTable'></td>
<td>{{ b.col5 }}</td>
<td>{{ b.col6 }}</td>
<td>{{ b.col7 }}</td>
</tr>



{% endfor %}
</table>

更新:

views.py:

def display(request):

return render_to_response('index.html', {'obj': my_model.objects.order_by('col2')})

最佳答案

您可以使用 forloopcounter ( docs ) 来帮助您了解当前所在的索引,并使用 obj.index 来帮助您获取下一个索引。但不建议这样做,Django Template 是专门为处理简单性而设计的,而建议您在 python 中完成其余的工作。

另请阅读有关切片的信息,它可用于列表 ( docs )。

编辑完整答案:

  1. 在您的应用目录中创建一个名为 templatetags 的文件夹
  2. templatetags内,创建一个名为__init__.py的文件
  3. templatetags内,创建另一个名为custom_tags.py的文件
  4. 打开custom_tags.py并添加以下代码:

from django import template
register = template.Library()
@register.filter
def next_object(value, arg):
try:
return value[int(arg)+1].col2
except:
return None
  • 在您的模板中添加以下代码:

  • {% load custom_tags %}
    {% for b in obj %}
    {% ifequal forloop.counter0 10 %} <!–– We are at index 10 -->
    {% with obj|next_object:forloop.counter0 as next_object %}
    {{ next_object }} <!–– Returns value of col2 from index 11 -->
    {% endwith %}
    {% endifequal %}
    {% endfor %}

    希望对你有帮助

    关于javascript - 如何使用 Django 获取正在 HTML 中呈现的对象的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45249933/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com