将Django模板中的JSON传递到独立Javascript文件

将Django模板中的JSON传递到独立Javascript文件,javascript,json,django,django-templates,django-views,Javascript,Json,Django,Django Templates,Django Views,我的views.py中有以下代码: from django.shortcuts import render from django.shortcuts import render_to_response from django.http import HttpResponse import json, requests platformReq = requests.get(platformUrl, headers={'Authorization': 'Token token="1234"'})

我的views.py中有以下代码:

from django.shortcuts import render
from django.shortcuts import render_to_response
from django.http import HttpResponse
import json, requests

platformReq = requests.get(platformUrl, headers={'Authorization': 'Token token="1234"'})

platformData = json.loads(platformReq.text)
return render_to_response('find.html',{'platformList':platformData})
在我的模板文件中,我有以下内容:

<script src="{% static "js/standalone.js" %}" type="text/javascript"></script>
  <script>
    {# this is where it fetches the json and formats it correctly #}
    var js_variable = {{platformList | jsonify}};
    console.log(js_variable);
    function_in_standalone_js(js_variable);
</script>
下面是输出内容,以及console.log()提供的内容(有3个以上,但我不想粘贴整个内容):

{“平台”:[{“slug”:“saturn”,“id”:32,“name”:“Sega saturn”},{“slug”:“mac”,“id”:14,“name”:“mac”},{“slug”:“vc”,“id”:47,“name”:“虚拟控制台(任天堂)”}]}


提前谢谢

可能是您的standalone.js在模板中的代码之后加载,因此错误可能是您的standalone.js在模板中的代码之后加载,因此错误可能是由于模板中的js加载时间不同,因此您应该将内联js包装在
$(document).ready(function(){…})
以确保它仅在加载文档的其余部分(包括外部JS文件)后运行

<script>
    $(document).ready(function(){
      var js_variable = {{platformList | jsonify}};
      console.log(js_variable);
      function_in_standalone_js(js_variable);
    });
</script>

$(文档).ready(函数(){
var js_variable={{platformList}jsonify};
log(js_变量);
独立函数中的函数(js变量);
});

由于在模板中加载JS的时间不同,您应该将内联JS包装在
$(document).ready(function(){…})
中,以确保仅在加载了文档的其余部分(包括外部JS文件)后才运行

<script>
    $(document).ready(function(){
      var js_variable = {{platformList | jsonify}};
      console.log(js_variable);
      function_in_standalone_js(js_variable);
    });
</script>

$(文档).ready(函数(){
var js_variable={{platformList}jsonify};
log(js_变量);
独立函数中的函数(js变量);
});

我该如何更正此问题?在我的模板文件中,我先将standalone.js作为脚本文件列出,然后再列出代码。编辑:即使将独立的js放入my中,我仍然会遇到错误。做一件事,在js文件中定义一个没有参数的简单js函数,并尝试在console.log()之前调用它,因此,您可以知道它是否加载或noI仍然得到错误:
ReferenceError:showTest未在独立JS文件中定义:
function showTest(){console.log(“Test!”)}
@AllenFernandes显然我上面的答案没有回答您的问题。。。即使这个错误意味着它无法加载,显然我必须特别声明。如果没有,它仍然无法在console.log()之前加载函数showTest(),我该如何更正?在我的模板文件中,我先将standalone.js作为脚本文件列出,然后再列出代码。编辑:即使将独立的js放入my中,我仍然会遇到错误。做一件事,在js文件中定义一个没有参数的简单js函数,并尝试在console.log()之前调用它,因此,您可以知道它是否加载或noI仍然得到错误:
ReferenceError:showTest未在独立JS文件中定义:
function showTest(){console.log(“Test!”)}
@AllenFernandes显然我上面的答案没有回答您的问题。。。即使这个错误意味着它无法加载,显然我必须特别声明。如果没有,它仍然无法在console.log()之前加载函数showTest(),您是否尝试过在独立的js(js_变量)中运行函数
在浏览器控制台?@IanAuld是的,我得到了相同的“未定义”错误。
js/standalone.js
是否在broswer开发工具的网络选项卡中显示404?@IanAuld否,在网络选项卡中显示:“304:未修改”。即使我进入“查看页面源代码”,我也可以访问该文件并查看其内容。您是否尝试过在
$(document).ready(function(){})
中包装内嵌脚本?您是否尝试过在独立的js(js\u变量)中运行
函数
在浏览器控制台?@IanAuld是的,我得到了相同的“未定义”错误。
js/standalone.js
是否在broswer开发工具的网络选项卡中显示404?@IanAuld否,在网络选项卡中显示:“304:未修改”。即使我进入“查看页面源代码”,我也可以访问该文件并查看其内容。您是否尝试过将内嵌脚本包装到
$(document).ready(function(){})