在 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 数组的主要内容,如果未能解决你的问题,请参考以下文章

客户端的 Django 模板渲染

Django模板渲染

渲染后如何获取模板(Django)

如何更新 django 模板中的渲染变量?

如何在 Django 模板中的“带有模板标签”中设置 Django 渲染块值?

Django模板侧边栏不能正常渲染