【问题标题】:How to get the next obj when looping in the django model在django模型中循环时如何获取下一个obj
【发布时间】:2011-06-28 03:09:30
【问题描述】:

这是代码:

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

谢谢

【问题讨论】:

  • 你认为这个“next_obj”将包含什么,它会以什么方式有用?
  • 我想用这个obj和下一个obj来计算两点之间的距离

标签: javascript jquery python html django


【解决方案1】:

您是否尝试使用 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 很有用,请参阅标签部分但需要更多代码。 如果你提供一个更详细的例子来说明你在做什么,我可以尝试给你一个通用的模板标签,它可能适用于你的情况。

祝你好运。

【讨论】:

    【解决方案2】:

    如果你想在一个 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 %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-23
      • 1970-01-01
      • 1970-01-01
      • 2021-10-02
      • 2022-01-16
      • 2022-01-13
      • 1970-01-01
      • 2013-10-26
      相关资源
      最近更新 更多