2011-02-16 87 views
0

这是代码:如何获得下一个OBJ时循环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'对象获得下一个objcet,

所以如何让从下一'o'对象,

如何获得在Python文件中的下一个对象,我可以在HTML显示此:

{{o.next_obj}}

感谢

+1

你认为这个“next_obj”会包含什么,以及它将以何种方式有用? – 2011-02-16 05:56:17

+0

我想使用这个obj和下一个obj来计算两个点之间的距离 – zjm1126 2011-02-16 06:55:29

回答

0

如果你想一个for循环中访问多个对象,(尽管这不是一个好的设计理念,但是这完全是一个独立的讨论。)你不会循环对象,而是一个计数器并访问各个对象的计数器。

#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 %} 
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,看标签部分,但需要更多的代码。 如果你提供给我一个更详细的例子,你可以尝试给你一个通用的模板标签,它可能适用于你的情况。

祝你好运。