在 Django 模板中渲染 Json 数组
Posted
技术标签:
【中文标题】在 Django 模板中渲染 Json 数组【英文标题】:Rendering Json arry in Django Template 【发布时间】:2016-02-21 02:25:55 【问题描述】:为了减少表的数量,我将表的值作为 json 字符串并将其存储在文本字段中定义明确的表格格式
这是我必须在我已经覆盖的 change_form.html 中呈现的 json 字符串的值 ['name': 'name', 'value': 'dfgdgd', 'label': 'Name used Account', 'type': 'text', 'name': 'email', 'value': 'dfgdfgdfg@ghng.gh', 'label': '帐户电子邮件地址', 'type': 'text', 'name': 'url', 'value': 'sdfsdfsdf', 'label': 'Web地址(URL)','类型':'文本']
【问题讨论】:
您能否发布代码以便人们可以帮助您。 使用json.loads将json字符串转成dict,然后传给template。 您发布的不是有效的json。 【参考方案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 %
【讨论】:
我必须将 json 传递到管理员视图如何解决?如果上面前端方法中的 for html 表单可以正常工作? 这不是您在原始问题中提出的问题。你到底想做什么? 我覆盖了特定模型的管理视图,现在我必须以明确定义的表格格式呈现带有 json 数据的文本字段。 这和你问的完全不同。我建议您删除此问题,并针对您要解决的确切问题提出另一个问题。以上是关于在 Django 模板中渲染 Json 数组的主要内容,如果未能解决你的问题,请参考以下文章