2

我在我的 Django 视图中使用以下代码

data = {'d':['a','b','c']}
return render_to_response('login/invalid.html',data)

现在我希望我的invalid.html页面具有将列表转换['a','b','c']为 javascript 变量数组的代码,以便我可以填充下拉菜单。但我无法将这些元素转换为 javascript 数组。

var arr = "{{ 'd' }}"

将列表作为字符串而不是数组请帮助


此代码使用数组创建下拉列表

<select >
              <script type="text/javascript">

              {% autoescape off %}
              var veg = {{ d }}
              {% endautoescape %}

                 for (i = 0; i < veg.length; i++) {
                     document.write('<option>')
                     document.write(veg[i])                   
                     document.write('</option>')                    
                }
             </script>            
         </select>

                d = json.dumps(['a','b','c'])
                #d = serializers.serialize("json", ['a','b','c'])
                #data={"d":json.dumps(['1','2','3','4'])}
                #data={}
                data = {'d':d}

                #data["read"] = json.dumps(",".join(['abc']))

                #return render_to_response('login/invalid.html',json.dumps(data),context_instance=RequestContext(request))

                return render_to_response('login/invalid.html',data,context_instance=RequestContext(request))
4

2 回答 2

2

您可能希望将数据序列化为json:

import json

d = json.dumps(['a','b','c']) 
# now d actually has a json string
data = {'d':d}
return render_to_response('login/invalid.html',data)

然后在你的模板中

// arr now holds the list
{% autoescape off %}
var arr = {{ d }}
{% endautoescape %}
console.log(arr);
arr.doSomething();
于 2012-05-30T09:53:44.723 回答
1

通过将列表转换为 JSONjson并在模板中输出,并根据需要将其标记为安全。

于 2012-05-30T09:38:12.057 回答