javascript - 在 Django 模板中访问字典值

标签 javascript python json django

我在访问要发送到 Django 模板的字典对象的值时遇到问题。我可以在我的 View 中访问和打印字典的内容,但是当我尝试将数据发送到我的模板时,会出现各种字符,比如没有正确编码。起初我认为这可能是序列化的问题,但我发现 this post 指出 json_serializer.serialize 应该与查询集一起使用。它是否正确?从这里我尝试了以下内容。

起初我尝试只发送数据变量本身而不像这样进行任何格式化

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
// &lt;testsite.views.data object at 0x1045f1e48&gt;

然后我尝试将数据格式化为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
// {&quot;item_1&quot;: 123, &quot;item_2&quot;: 456, &quot;item_3&quot;: [&quot;a&quot;,&quot;b&quot;,&quot;c&quot;,]

如果我不使用 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'] }

在模板中尝试像这样使用 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 - 在 Django 模板中访问字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40582239/

相关文章:

javascript - Grunt Lodash 模板可以在 Gruntfile.js 任务中使用吗?

Python:如何制作成对数组的数组?

python - django模板显示项目值或空字符串

java - 使用 Gson 从具有动态字段的 JSON 字符串构建 POJO

json - 如何表示NOSQL类型的数据存储格式

javascript - 制作一个图像 slider ,每 6 秒更改一次图像

可以做 y 轴的 Javascript 图表库 --> 时间和 x 轴 ---> 日期

javascript - 逐行读取文件,完成后执行一些操作(NodeJS)

python -/admin/zinnia/entry/add/in Zinnia 的 ValueError?

javascript - 调用rest webservice时jquery ajax失败