Javascript 传递给js的字典不工作

Javascript 传递给js的字典不工作,javascript,django,django-templates,django-views,Javascript,Django,Django Templates,Django Views,我是javascript新手。我正在做django项目。我需要将dictionary模板变量传递给javascript,但我还不能 views.py包括: def index(request): name={'bishal':509,'bishnu':510} return render_to_response("test.html",Context({'name':simplejson.dumps(name)})) {% load staticfiles %} {% block

我是javascript新手。我正在做django项目。我需要将dictionary模板变量传递给javascript,但我还不能

views.py包括:

def index(request):
   name={'bishal':509,'bishnu':510}
   return render_to_response("test.html",Context({'name':simplejson.dumps(name)}))
{% load staticfiles %}
{% block include_js %}
<script src="{% static "js/chart.js" %}"></script>
<script src="{% static "js/test.js" %}"> </script>
{% endblock include_js %}

{% block main_content %}

    <script type="text/javascript" src="static/js/test.js"></script>
    <script type="text/javascript">
       var name={{name}};
    </script>
    <button class="btn btn-primary" id="btn1" type="button" onclick="myfunction()">1st visualization</button>
    {% endblock %}
$(function myfunction() {
 document.getElementById('btn1').onclick=function(){
        name=JSON.parse(name);
        alert(name);
   };
});
test.html包括:

def index(request):
   name={'bishal':509,'bishnu':510}
   return render_to_response("test.html",Context({'name':simplejson.dumps(name)}))
{% load staticfiles %}
{% block include_js %}
<script src="{% static "js/chart.js" %}"></script>
<script src="{% static "js/test.js" %}"> </script>
{% endblock include_js %}

{% block main_content %}

    <script type="text/javascript" src="static/js/test.js"></script>
    <script type="text/javascript">
       var name={{name}};
    </script>
    <button class="btn btn-primary" id="btn1" type="button" onclick="myfunction()">1st visualization</button>
    {% endblock %}
$(function myfunction() {
 document.getElementById('btn1').onclick=function(){
        name=JSON.parse(name);
        alert(name);
   };
});
但错误的说法是:

[30/Jul/2013 02:50:51] "GET /visualize/static/js/test.js HTTP/1.1" 404 2732
我在html中尝试了类似的事情:

    <html>
<head>

<script type="text/javascript">
function myfunction()
{
    dict=JSON.parse(dict);
    alert(dict);

}
</script>

</head>
<body>

<script type="text/javascript">
var dict='{"bishnu": 509, "bishal": 510}';
</script>

<form>
<input type="button" 
onclick="myfunction()" 
value="Call function">
</form>

<p>By pressing the button, a function will be called. The function will alert a message.</p>

</body>
</html>

函数myfunction()
{
dict=JSON.parse(dict);
警惕(dict);
}
var dict='{“bishnu”:509,“bishal”:510}';
按下按钮,将调用一个函数。该功能将提示一条消息


这非常有效。请帮忙

忽略所有JavaScript。问题的关键在于:

[30/Jul/2013 02:50:51] "GET /visualize/static/js/test.js HTTP/1.1" 404 2732

404是“未找到文件”的HTTP代码,这意味着您使用了不正确的路径来引用JavaScript文件。解决这个问题后,您可能会发现您的解决方案会起作用,或者,如果没有,至少会有不同的中断。

@Adrian关于错误消息是正确的,但我怀疑您所考虑的问题是由于没有在test.html中的
{{name}}
周围加引号造成的。尝试:

<script type="text/javascript">
    var name='{{name}}';
</script>

var name='{name}}';

我想在OP中补充一点,您所做的被认为是非常糟糕的做法,应该尽可能避免@如果你想把它作为一个单独的答案加上改进的建议,我很乐意投上一票,以便最初的提问者至少能看到它。虽然我怀疑他在维护别人的代码,但他自己可能无法更改。path是正确的,因为它适用于类似传递的字符串让我们假设它比看起来更复杂,chart.js和test.js都在同一个文件夹中。您能否证明加载的chart.js肯定是来自该位置的(例如,在顶部放置一个
警报()?另外,您是否有可能在某个地方输入了错误的文件名,或者文件名中有一个空格您遗漏了?@limelights您能详细介绍一下这里的错误做法是什么吗?