Django模板中的List.pop()没有for循环

时间:2013-09-22 16:52:20

标签: javascript python django jquery django-templates

我有一个id all_entries_user的列表。它们基本上是我使用TastyPie开发的休息服务网址的一部分。在我的Django模板中,我想通过迭代all_entries_user

来使用它们
function ajaxCall(){
    $.getJSON("http://localhost:8000/api/Location/" + {{ all_entries_user.pop }} + "/?format=json",
    function(json) {
    convert(json,"googleMapUser");
        }
    );
}

使用这个我从服务中获取值,这是在连续的时间间隔内发生的。

 interval = startInterval(ajaxCall, 3000);

每次调用时,url的值必须更改,并且必须从列表

中获取
  all_entries_user

每次给我相同的id。

我尝试弹出值,但每次都给我相同的值

我还没有找到一种有效的方法来迭代这个。

建议和帮助请

2 个答案:

答案 0 :(得分:2)

为什么不使用for construct

{% for user in all_entries_user %}
    Do your thing with {{ user }}
{% endfor %}

答案 1 :(得分:0)

混合使用两种语言时非常困惑。发生的事情是你的javascript在呈现模板时会被“建立”一次,所以你只有一个URL,无论javascript命中该方法多少次。您可以使用查看源并检查您的javascript对客户端的外观来验证这一点。

如果您希望客户端每次都调用不同的URL,则必须先将所有ID发送到客户端。一种方法是使用json序列化程序或只是一个简单的自制javascript数组构建器。

这样的事可能有用:

<script>
   var allEntries = [{% for entry in all_entries_user %}{{ entry.id }},{% endfor %}];
   for (entryId in allEntries) {
      doSomethingWith(entryId);
   }
</script>

这不是从django填充javascript数组的最佳方法,但它很有效。