循环遍历数组django - 稍微复杂一点

时间:2016-03-17 19:47:00

标签: django

我正在使用JQuery图表库,您可以在其中传递值,如[0,2,5,9]。

我的视图中有一个数组,我当前访问每个索引以返回值rest 1 = arr [0],rest 2 = arr [1] ...然后将这些值从视图传递到我的HTML页面并插入图表的值,如[res1,res2]。这是不可行的,因为我永远不知道数组的大小,所以它是一个访问数组的持续手动方法。有没有办法轻松遍历每一个?

轻微的问题。目前在访问每个索引后,我将值转换为int。所以我认为我不能通过循环浏览html页面来实现它 - 它必须通过视图来完成。除非我能以某种方式调用html页面视图中定义的转换函数吗?

--- views --- 
array

 -> returns multiple string values i.e. name = paul, name = john
-> paul = arr[0] 
-> function(paul['']) converts it to a string.

--- html page ---
{{paul}}

理想情况下我想这样做:

[而不是在这里引用每个索引只是循环遍历所有数组值..但不知何故在每个值上调用我的转换函数,否则我想做的事情将无法工作。 ]

 {% for values in array %}
[insert each one here and call the convert int function from views] 

1 个答案:

答案 0 :(得分:1)

我可能会误解你的问题,但听起来你只想将一个字符串列表传递给模板,循环列表中的每个项目并进行一些转换。我不确定你遇到了哪一步,但最简单的方法是在views.py中做所有事情:

views.py

FragmentTransaction ft = ((Activity)context).getSupportFragmentManager().beginTransaction();
ft.replace(R.id.frameLayout, new FragmentNewGame(), "newGame");
                ft.addToBackStack(null);

模板:

def view_func(request):
    array =  [{'Speed': 2, 'Height': 1, 'PersonID': 1}, {'Speed': 2, 'Height': 1, 'PersonID': 1}]
    # do the conversion on each value in the list
    converted_array = [int(i['speed']]) for i in array]
    context = {'array': array, 'converted_array': converted_array}