use*_*176 0 javascript python django json
我无法访问要发送到Django中模板的dict对象的值。我可以在视图中访问和打印字典的内容,但是当我尝试将数据发送到模板时,会出现各种字符,例如编码不正确。起初,我认为序列化可能是一个问题,但是我发现这篇文章指出json_serializer.serialize应该与queryset一起使用。它是否正确?从这里,我尝试了以下方法。
最初,我尝试仅发送数据变量本身,而不使用任何格式
data = {'item_1': 123, 'item_2': 456, 'item_3': ['a','b','c'] }
return render(request, 'testsite/new_page.html', {'data' : data} )
Run Code Online (Sandbox Code Playgroud)
在模板中,我有以下内容
<script>var data = "{{ data }}"; </script>
<script>console.log(data);</script>
// displays the following
// <testsite.views.data object at 0x1045f1e48>
Run Code Online (Sandbox Code Playgroud)
然后我尝试将数据格式化为JSON
data = {'item_1': 123, 'item_2': 456, 'item_3': ['a','b','c'] }
return render(request, 'testsite/new_page.html', {'data' : json.dumps(data.__dict__) } )
//template
<script>var data = "{{ data }}"; </script>
<script>console.log(data);</script>
// the following is the improperly formatted result
// {"item_1": 123, "item_2": 456, "item_3": ["a","b","c",]
Run Code Online (Sandbox Code Playgroud)
如果我不使用json.dumps(data.__dict__)而取而代之的是json.dumps(data)我收到有关该对象不是JSON可序列化的错误
我认为我有以下几点。字典的内容格式正确。
print(data.__dict__)
import pdb; pdb.set_trace()
# displays the dict properly
# {'item_1': 123, 'item_2': 456, 'item_3': ['a','b','c'] }
Run Code Online (Sandbox Code Playgroud)
在模板中,试图像这样使用javascript遍历数据对象,但它只是显示格式不正确的dict的每个单独字符。
for (var key in data) {
console.log(data[key]);
}
Run Code Online (Sandbox Code Playgroud)
我在做错什么导致模板中的数据格式不正确?
考虑使用
return render(request, 'testsite/new_page.html', {'serialized_data' :json.dumps(data) } )
Run Code Online (Sandbox Code Playgroud)
与
<script>var data = "{{ serialized_data | safe }}"; </script>
Run Code Online (Sandbox Code Playgroud)
请注意,该safe过滤器会阻止django将您"变成"
| 归档时间: |
|
| 查看次数: |
1777 次 |
| 最近记录: |