【发布时间】:2020-09-15 00:29:11
【问题描述】:
我正在尝试序列化查询集以在 javascript 中使用它来填充图表。
问题是它不允许我序列化对象。如果我删除 queryset 它可以工作,但我需要上下文中的查询集才能将其用于 Django 渲染。
那么我如何使用 Django 中的变量来呈现 html div 和 javascript 来呈现图表? (在这种情况下,它是一个画布,为什么我需要 javascript 站点上的变量)。
views.py 其中currency 和dynascore 是两个自定义变量,queryset 是 Django 模型查询
[...]
context = {
'queryset': queryset,
'currency': currency,
'dynascore': dynascore,
}
# Prepare context for javascript
json_context = json.dumps(context)
context['json_context'] = json_context
print(queryset)
return render(request, template, context)
// Throws:
// Object of type StocksPrice is not JSON serializable
Javascript
console.log(json_context)
// Throws:
// Uncaught ReferenceError: json_context is not defined at terminal.js:1
据我了解,Django 检索数据和 javascript/客户端之间唯一的“桥梁”是 JSON?
【问题讨论】:
-
你试过
{{ json_context }}吗? -
@Sher 在哪里?对于 console.log?
-
是的,如果数据显示不正确,请尝试
console.log({% autoescape off %} {{ json_context }} {% endautoescape %}) -
您可以尝试在脚本标签中使用它,就像 Sher 所说的那样。
标签: javascript python django