在Django模板中渲染Json arry

时间:2015-11-19 04:53:36

标签: json django django-templates

为了减少表的数量我将表的值作为json字符串并将其存储在文本字段中我的问题我覆盖特定模型的管理视图现在我必须使用json数据渲染文本字段明确定义的表格格式

这是我必须在我已经覆盖的change_form.html中呈现的json字符串的值     [{'name':'name','value':'dfgdgd','label':'名称使用帐户','输入':'text'},{'name':'email','value': 'dfgdfgdfg@ghng.gh','label':'帐户电子邮件地址','类型':'text'},{'name':'url','value':'sdfsdfsdf','label':'Web地址(URL)','type':'text'}]

1 个答案:

答案 0 :(得分:1)

您需要将json转换回对象,并将该对象传递给模板:

import json

def my_view(request):
    s = "[{'name': 'name', 'value': 'dfgdgd', 'label': 'Name used Account', 'type': 'text'}, {'name': 'email', 'value': 'dfgdfgdfg@ghng.gh', 'label': 'Account Email Address', 'type': 'text'}, {'name': 'url', 'value': 'sdfsdfsdf', 'label': 'Web Address (URL)' , 'type': 'text'}]"
    s = s.replace("'",'"') # json must be double quoted
    o = json.loads(s)
    return render(request, 'template.html', {'data': o})

然后在你的模板中:

{% for obj in data %}
    {{ obj.name }} - {{ obj.value }} - {{ obj.label }} - {{ obj.type }}
{% endfor %}