在Django中解析querydict字典中的整个列表

时间:2016-09-29 11:26:59

标签: javascript django parsing dictionary django-templates

我有一个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 = []

取决于字典上的原始列表

我尝试了很多选项,但我还没有成功,请帮忙吗?

1 个答案:

答案 0 :(得分:2)

不要将querydict直接传递给模板。改为将其转换为JSON字符串:

data = json.dumps(dict(my_querydict))

(您需要先将其转换为dict,以绕过querydict对多值键的特殊处理。)

现在你的JS可以在你的模板中访问它:

var data = {{ data|safe }};
var var1 = data.var1;