【问题标题】:Unable to use JSON.parse in my django template无法在我的 django 模板中使用 JSON.parse
【发布时间】:2016-10-13 10:58:14
【问题描述】:

我的 Django 视图中有一个变量 data1,它通过以下方式返回 -

def dashboard(request):
   df1 = pd.read_excel("file.xlsx")
   str1= df1.to_json(orient = 'records')
   data1 = json.loads(str1)
   return render(request, 'dashboard/new 1.html',{'data1' : data1})

然后使用 javascript 在模板中调用该变量

 <script type = text/javascript>    
   var ob2 = JSON.parse( {{ data1 }} );
   document.write(ob2);
 </script>

这不会在创建的 HTML 网页上显示任何内容。代码有什么问题吗?

【问题讨论】:

  • 您在打开该页面时是否在浏览器的控制台中看到任何错误?
  • 删除解析并尝试document.write("{{data1}}");

标签: javascript python json django


【解决方案1】:

除了酒仙的回答,其他的问题是:

data1 = json.loads(str1)

这会将 JSON 字符串转换回 Python 数据结构。只需将 str1 本身发送到模板,并将其命名为 a,因为这就是您在模板中使用的内容:

return render(request, 'dashboard/new 1.html',{'a' : str1})

【讨论】:

    【解决方案2】:

    尝试将其输出为字符串:

    <script type = text/javascript>    
      var ob2 = JSON.parse( "{{ data1 }}" );
      document.write(ob2);
    </script>
    

    如果这没有产生结果,我建议在屏幕上打印 {{ data1 }} 并查看 Django 返回的确切内容。

    【讨论】:

    • console.log(data1) 可能对调试有更多帮助。是否有任何控制台错误?
    • 对不起...我添加了一个后来编辑的代码
    • 试过了
    • 那个变量的输出是什么?
    【解决方案3】:

    删除Parse试试这个

     <script type = text/javascript>    
       document.write("{{ data1 }}");
     </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 1970-01-01
      • 2017-08-01
      • 2021-04-21
      • 2021-03-21
      • 2020-10-04
      • 2016-02-25
      相关资源
      最近更新 更多