我在python中有以下dict,我发送到模板:
mydict = {
"ABC": {
"target_weight": 1,
"target_ra_weight": 2
},
"XYZ": {
"target_weight": 3,
"target_ra_weight": 4
},
"JKL": {
"target_weight": 5,
"target_ra_weight": 6
}
}
return render(request, 'template.html', {'mydict': mydict})
我似乎无法将此内容分配给javascript变量并访问内容。我在模板的javascript部分尝试了以下所有内容:
var mydict = {{ mydict }};
> Uncaught SyntaxError: unexpected token {
var mydict = {{ mydict|safe }};
> Uncaught SyntaxError: unexpected token {
var mydict = {{ mydict|escapejs }};
> Uncaught SyntaxError: unexpected token {
以下允许我创建变量,但是当我尝试访问它时(例如:console.log(mydict)),那我就错了:
var mydict = JSON.parse('{{ mydict }}');
console.log(mydict);
> Uncaught SyntaxError: unexpected token { in JSON at position 1
// same thing happens when using |safe or |escapejs
答案 0 :(得分:3)
你需要JSON,而不是dict。使用json.dumps功能:
import json
mydict = {
"ABC": {
"target_weight": 1,
"target_ra_weight": 2
},
"XYZ": {
"target_weight": 3,
"target_ra_weight": 4
},
"JKL": {
"target_weight": 5,
"target_ra_weight": 6
}
}
return render(request, 'template.html', {'mydict': json.dumps(mydict)})
并在模板中:
var mydict = JSON.parse('{{ mydict|safe }}');