【问题标题】:Django serialize object return arrayDjango 序列化对象返回数组
【发布时间】:2021-10-13 08:27:11
【问题描述】:

Django 序列化对象返回一个数组,我无法用 js 在模板中获取它

我的观点.py:

def MyExempleView(request):
    data = serializers.serialize("json", myModel.objects.all())
    context = {
        "data" : json.loads(data)
    }
    return render(request, 'consulta/myTemplateExemple.html', context=context)

我的模板:

{{ data|json_script:"data" }}

if ($("#data").length) {
    var data= JSON.parse(document.getElementById('data').textContent);
}

我的结果示例:

"[{"key": "value"}, {"key2": "value2"}]"

【问题讨论】:

  • 你如何打印数据?

标签: javascript django django-rest-framework django-views django-templates


【解决方案1】:

我解决了使用 python json 加载和转储 json 的问题:

在视图中:

"data" : data

在模板中的js中:

var data = JSON.parse(document.getElementById('data').textContent)
jsonResponse = JSON.parse(data)

【讨论】:

  • 你不能省略json.dumps(json.loads(...)),从而使用"data": data吗?
  • 我试过了,不行,现在可以了,tks
  • 但通常dumpsloads 是彼此的倒数。因此,如果两者都被删除,那么人们会期望简单地传递数据没有任何dumps/loadss 会产生相同的数据。
  • 现在说得通了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-16
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 2020-02-29
相关资源
最近更新 更多