我有一个quallydict,我传递给Django的模板。这个querydict可能看起来像这样:
<QueryDict: {u'VAR1': [u'val1', u'val2', u'val3'], u'VAR2': u'val4', u'VAR3': [u'val5'], u'VAR4': []}>
字典可以更大,更短,但它总是包含一个内部有列表的字段,此列表也可以为空。
在前面的例子中,可以看到包含列表(“VAR1-val1_2_3”)的“键值”对,包含空列表的“键值”对(“VAR4- []”)a “键值”对包含带有一个项目的列表(“VAR3-val5”)和一个包含字符串的“键值”对(“VAR2-val4”)
在模板中,我知道querydict中所有条目的关键名称
我想将整个列表从querydict解析为Javascript变量,所以它看起来像这样:
关键字“VAR1”的 var trial = ['val1', 'val2', 'val3']
或
关键字“VAR3”的 var trial = ['val5']
或
关键字“VAR4”的 var trial = []
取决于字典上的原始列表
我尝试了很多选项,但我还没有成功,请帮忙吗?
答案 0 :(得分:2)
不要将querydict直接传递给模板。改为将其转换为JSON字符串:
data = json.dumps(dict(my_querydict))
(您需要先将其转换为dict,以绕过querydict对多值键的特殊处理。)
现在你的JS可以在你的模板中访问它:
var data = {{ data|safe }};
var var1 = data.var1;