【问题标题】:Rendering Json arry in Django Template在 Django 模板中渲染 Json 数组
【发布时间】: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。

标签: json django django-templates


【解决方案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 数据的文本字段。
  • 这和你问的完全不同。我建议您删除此问题,并针对您要解决的确切问题提出另一个问题。
猜你喜欢
  • 2022-07-22
  • 1970-01-01
  • 2018-05-20
  • 2018-11-05
  • 2018-11-25
  • 2020-08-10
  • 2017-10-12
  • 2019-04-29
  • 2016-06-07
相关资源
最近更新 更多