如何在django模型中循环时获取下一个obj

时间:2011-02-16 05:54:21

标签: javascript jquery python html 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 :(得分:0)

如果你想访问forloop中的多个对象,(虽然这不是一个好的设计理念,但这完全是一个单独的讨论。)你不要循环对象,而是一个计数器并访问相应的对象'柜台四处走动。

#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 %}

答案 1 :(得分:0)

你尝试使用get_next_by_FOO吗? https://docs.djangoproject.com/en/1.2/ref/models/instances/#django.db.models.Model.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 }}

否则它对templatetags很有用,请参阅标记部分,但需要更多代码。 如果你向我提供了一个更详细的例子,你可以尝试给你一个通用的模板标签,这可能适用于你的情况。

祝你好运。