Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将DJango列表的数据传递到javascript列表时出错_Javascript_Python_Django_Django Templates_Python 2.7 - Fatal编程技术网

将DJango列表的数据传递到javascript列表时出错

将DJango列表的数据传递到javascript列表时出错,javascript,python,django,django-templates,python-2.7,Javascript,Python,Django,Django Templates,Python 2.7,我有一个python Django列表: list_a = ['user_a', 'user_b'] 现在,我使用以下代码将其渲染到模板: extra_context = { 'a': list_a } return direct_to_template(request, 'mytemplate.html', extra_context) 在我的模板中,我编写了以下java脚本代码来将list\u aDjango列表传递给Js列表: var user = [{% for i in u

我有一个python Django列表:

list_a = ['user_a', 'user_b']
现在,我使用以下代码将其渲染到模板:

extra_context = {
    'a': list_a
}
return direct_to_template(request, 'mytemplate.html', extra_context)
在我的模板中,我编写了以下java脚本代码来将
list\u a
Django列表传递给Js列表:

var user = [{% for i in user_list %}{{ i }}{% if forloop.last %}{%else%},{%endif%}{% endfor %}];
但是当我打开模板时。它显示以下错误(通过检查元件检查):

我试图使用
Inspect元素打印驻留在javascript中的
user
变量。它打印正确的值,即

var user=[user\u a,user\u b]


我不明白为什么会这样:(

我想我发现了错误:

Update `var user = [{% for i in user_list %}{{ i }}{% if forloop.last %}{%else%},{%endif%}{% endfor %}];


您给了我正确的解决方案。

在您的模板中,您可以使用

var user = {{user_list|safe}};
使用此模板代码,python列表定义为

user_list = ['te"s\'t1', 'test2'];
查看javascript源代码时给出以下结果

var user = ['te"s\'t1', 'test2'];
而您的原始解决方案将给出

var user = ["te"s't1","test2"];

你使用哪一个取决于你打算对用户名做什么。不管你在模板中是否使用“安全”,模板中的for和if语句似乎有点过度工作。

你的Javascript怎么知道“user\u a”是什么?@DanielRoseman我没有理解你。我只是用中的Fire bug或已检查的元素工具Chrome@AmitPal对,所以
var user=[user\u a,user\u b]
,但是什么是
user\u a
user\u b
?这些内部名称没有定义,因此出现了错误。@kojiro哦!我知道了,但是我怎么能否认这一点,因为它是用python从数据库获取的动态列表。我是Javascript新手。我该怎么做?是否可以将它们作为字符串传递?
var user = ['te"s\'t1', 'test2'];
var user = ["te"s't1","test2"];