我在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))
答案 0 :(得分:2)
你可能希望serialize your data为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();
答案 1 :(得分:1)
通过json
将列表转换为JSON并将其输出到模板中,根据需要将其标记为安全。