如何在Django模型中循环时获取下一个对象
这是代码:
{% for o in page_obj.object_list %}
<tr style="color:#4A3C8C;background-color:{% cycle '#E7E7FF' '#F7F7F7' %};">
<td align="center"> {{o.terminal_id}}</td>
<td align="center"> {{o.time_stamp}}</td>
<td align="center" class="lat"> {{o.latitude|floatformat:"6"}}</td>
<td align="center" class="lng"> {{o.longitude|floatformat:"6"}}</td>
<td align="center"> {{o.speed}}</td>
<td align="center">
<script>
$("script").last().parent().parent()
</script>
</td>
<td align="center"> {{o.speed}}</td>
<td align="center"> {{o.adress_reality}}</td>
</tr>
{%endfor%}
我想获取在 'o'
对象之后的下一个对象。
我该如何从 'o'
对象获取下一个对象呢?另外,我该如何在 Python 文件中获取下一个对象,然后在 HTML 中像下面这样显示出来?
{{ o.next_obj }}
谢谢
2 个回答
0
你试过用 get_next_by_FOO 吗?
如果这个字段不是动态生成的,你可以简单地在你的模型里添加:
class MyObj(models.Model):
lat = ...
lon = ...
def get_next_by_id(self):
return self.objects.get(id=self.id+1)
然后你可以用 {{ o.get_next_by_id.lat }}
来获取。
如果不是这样的话,可以考虑使用 模板标签,具体可以看看标签部分,不过这需要写更多的代码。如果你能给我一个更详细的例子,我可以试着给你一个通用的模板标签,可能会适合你的情况。
祝你好运。
0
如果你想在一个循环里访问多个对象,(虽然这样做并不是一个好的设计思路,不过这又是另一个话题。)你不是直接循环这些对象,而是用一个计数器,然后通过这个计数器来访问相应的对象。
#In your view
obj_count = range(page_obj.object_list.count())
{% for i in obj_count %}
o.i # Will access current object
o.i+1 # Will access the next object
{% endfor %}