在JS中使用views.py变量

时间:2016-01-02 04:43:23

标签: javascript angularjs ajax django-views

我改变了关于如何填充用户页面的想法。以前用户会从下拉列表中选择一个值,而AJAX调用将获取一些数据。工作代码如下所示:

HTML:

<h3>Experimenter: {{ request.user }}</h3>
<h3>Response Surface: {{ surfaceModel }}</h3>
<form action="">
  <h4>
        <select id = "selectRS" name="selectRS">
                        <option value="intro">Intro</option>
                        <option value="intro2">Intro 2</option>
                        <option value="welding">Welding</option>
                        </select>
        </h4>
</form>

JavaScript的:

...
var levels = {{ dlevels }}; // dlevels is an integer
var mtx_data = {{ mtx_init }}; //mtx_init is a 2-d array    
var rspSrf = document.getElementById("selectRS").value;
...
$.ajax({ ...

这很好用。但我现在想通过url传递值,所以我将JavaScript更改为:

var rspSrf = {{ surfaceModel }};

现在阿贾克斯没有工作。

这就是现在传递surfaceModel的价值的方式:

url(r'^profile/intro$', 'prof_pages.views.profile', {'surfaceModel': 'intro'}, name='profile/intro'),

surfaceModel是一个字符串,就像下拉选项一样,所以我不确定为什么它不会起作用。

我编辑了我的代码以显示更多工作代码。我只是扩展了已经工作的尝试传递字符串以及传递给js脚本的整数和数组。

1 个答案:

答案 0 :(得分:0)

更正的代码是:

var rspSrf = "{{ surfaceModel }}";

即使传递的变量是一个字符串,它仍然需要双引号。以下参考文献显示了方式:

http://www.mutaku.com/wp/index.php/2012/03/accessing-django-template-variables-in-javascript/

也会更新标题,希望现在更清楚了 问候。