将javascript变量与django模板一起使用

时间:2016-09-06 13:29:45

标签: django django-templates

我有一个具有不同分辨率的大脑模型,我想让用户只需从选择标签中选择所需的分辨率即可更改模型的分辨率。

我的意思是我已经加载了完整的模型而没有向服务器发送POST我想要改变大脑模型的视图。

问题是我无法将select值中的read值传递给我的django标签,以选择合适的moedl进行渲染。

这是我的代码:

<body>
    <select id="resolution_options" onchange="change_brain_resolution()" name="resolution_options">

        {% for brain in brains %}
           <option value="{{ brain.resolution }}">
               {{ brain.resolution_title }}
           </option>
        {% endfor %}
    </select>


<script>

function change_brain_resolution() {       

        var selcted_resolution = getElementById('resolution_options').value;

        {% for brain in brains %}

            // Here is my problem !!
            {% if brain.resolution == selcted_resolution %}

              // Do drawing

           {% endfor %}       
    }

</script>

</body>

为什么我不想做POST的共鸣是因为用户已经绘制和做了很多其他事情,他可能想要改变大脑模型的分辨率以获得更好的视图或者表演,但他想保持场景中的其他对象

非常感谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

function change_brain_resolution() {       

    var selcted_resolution = getElementById('resolution_options').value;

    {% for brain in brains %}

        if (selcted_resolution == {{ brain.resolution }}) {
          // Do drawing
        }

    {% endfor %}       
}

这最终会为您的客户端的每个大脑分辨率设置逻辑。如果您想提高效率,则必须使用AJAX将所选分辨率传递给服务器,并呈现响应。

请记住,模板在页面之前呈现,因此它们无法访问javascript变量的值。如果要将javascript变量传递给服务器,则应在使用AJAX请求加载页面后执行此操作。