在Django模板中访问字典值
Accessing dict values in Django template
我在访问一个dict对象的值时遇到了麻烦,我试图在Django中发送给一个模板。我可以在我的视图中访问和打印字典的内容,但是当我试图将数据发送到我的模板时,有各种各样的字符,比如它没有被正确编码。一开始我以为这可能是序列化的问题,但是我发现这篇文章说json_serializer。Serialize应该与查询集一起使用。这是正确的吗?从这里,我尝试了以下操作。
一开始我试着单独发送data变量而不需要任何格式,像这样
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>
然后我尝试将数据格式化为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",]
如果我不使用json.dumps(data.__dict__)
,而只使用json.dumps(data)
,我会得到一个错误,关于对象不是JSON serializable
在我看来,我有以下几点。字典的内容格式正确。
print(data.__dict__)
import pdb; pdb.set_trace()
# displays the dict properly
# {'item_1': 123, 'item_2': 456, 'item_3': ['a','b','c'] }
在模板中尝试使用javascript像这样遍历数据对象,但它只是显示格式不正确的字典的每个字符。
for (var key in data) {
console.log(data[key]);
}
我做错了什么导致模板中格式不正确的数据?
考虑使用
return render(request, 'testsite/new_page.html', {'serialized_data' :json.dumps(data) } )
<script>var data = "{{ serialized_data | safe }}"; </script>
注意safe
过滤器那里停止django把你的"
变成"
相关文章:
- 访问布局信息是否也会导致浏览器重排
- javascript结合了数组和字典
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何访问声音管理器2创建的声音对象
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 为什么我可以't使用点表示法访问JSON字典元素
- 访问 Meteor 事件处理程序中的模板帮助程序字典
- 从 Meteor 中的 Stripe API 返回的 JSON 字典中的访问值
- 按字符串索引访问字典对象
- 使用 jQuery 访问 asp.net 字典
- 在javascript和访问值中遍历字典
- 在Django模板中访问字典值
- 从angular控制器访问字典
- 如何访问json字典和列表中的值
- 访问javascript中的嵌套字典
- 如何访问从服务器端传递的javascript中的字典通用对象
- 键作为变量访问javascript字典
- 在javascript中访问python字典