Javascript 在Django模板中访问dict值
我在访问试图发送到Django中模板的dict对象的值时遇到问题。我可以在我的视图中访问和打印dict的内容,但是当我尝试将数据发送到模板时,会出现各种各样的字符,比如没有正确编码。起初,我认为这可能是序列化的问题,但我发现应该将json_serializer.serialize与queryset一起使用。这是正确的吗?从这里我尝试了以下方法 起初,我尝试只发送数据变量本身,而不发送任何格式Javascript 在Django模板中访问dict值,javascript,python,json,django,Javascript,Python,Json,Django,我在访问试图发送到Django中模板的dict对象的值时遇到问题。我可以在我的视图中访问和打印dict的内容,但是当我尝试将数据发送到模板时,会出现各种各样的字符,比如没有正确编码。起初,我认为这可能是序列化的问题,但我发现应该将json_serializer.serialize与queryset一起使用。这是正确的吗?从这里我尝试了以下方法 起初,我尝试只发送数据变量本身,而不发送任何格式 data = {'item_1': 123, 'item_2': 456, 'item_3': ['a'
data = {'item_1': 123, 'item_2': 456, 'item_3': ['a','b','c'] }
return render(request, 'testsite/new_page.html', {'data' : data} )
在模板中,我有以下内容
<script>var data = "{{ data }}"; </script>
<script>console.log(data);</script>
// displays the following
// <testsite.views.data object at 0x1045f1e48>
在模板中,它试图像这样使用javascript迭代数据对象,但它只显示格式不正确的dict的每个字符
for (var key in data) {
console.log(data[key]);
}
我做错了什么导致模板中的数据格式不正确 考虑使用
return render(request, 'testsite/new_page.html', {'serialized_data' :json.dumps(data) } )
与
var data=“{{serialized_data | safe}}”;
注意,安全
过滤器会阻止django将您的“
转换为”
考虑使用
return render(request, 'testsite/new_page.html', {'serialized_data' :json.dumps(data) } )
与
var data=“{{serialized_data | safe}}”;
注意,
safe
过滤器阻止django将您的“
转换为”
您不能只执行返回渲染(请求,'testsite/new_page.html',{'data':data})
?对不起,我应该更新。当我这样做时,它会导致一个奇怪的结果,看起来像是一个内存位置。我将更新我的postvar数据=“{data}}”;你不能只做返回render(请求'testsite/new_page.html',{'data':data})
?对不起,我应该更新。当我这样做时,它会导致一个奇怪的结果,看起来像是一个内存位置。我将更新我的postvar数据=“{data}}”;当我这样做时,我得到一个引用错误ReferenceError:data未定义。我一定要解释你的答案,你是如何使用序列化的_数据的,而不是像我这样的数据。仍然会产生参考答案,与e4c5相同answer@user1852176请根据您的代码调整变量名。我这样做了,但在我的评论中忘了提到这一点。我一定是在你看到之前改变了我的评论。另一个答案也会导致引用错误。对于以后阅读本文的人来说,我可以通过切换到单引号,并在我看来使用json.dumps(data.\uu dict_uuu)
,以及在设置javascript变量var data={{serialized_data | safe}时使用单引号,而不是双引号,使其正常工作代码>执行此操作时,我得到一个引用错误ReferenceError:未定义数据。我一定要解释你的答案,你是如何使用序列化的_数据的,而不是像我这样的数据。仍然会产生参考答案,与e4c5相同answer@user1852176请根据您的代码调整变量名。我这样做了,但在我的评论中忘了提到这一点。我一定是在你看到之前改变了我的评论。另一个答案也会导致引用错误。对于以后阅读本文的人来说,我可以通过切换到单引号,并在我看来使用json.dumps(data.\uu dict_uuu)
,以及在设置javascript变量var data={{serialized_data | safe}时使用单引号,而不是双引号,使其正常工作代码>
return render(request, 'testsite/new_page.html', {'serialized_data' :json.dumps(data) } )
<script>var data = "{{ serialized_data | safe }}"; </script>