Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Django同时将变量从视图传递到两个模板_Javascript_Django_Django Templates_Django Views - Fatal编程技术网

Javascript Django同时将变量从视图传递到两个模板

Javascript Django同时将变量从视图传递到两个模板,javascript,django,django-templates,django-views,Javascript,Django,Django Templates,Django Views,我想同时将var从视图传递到模板和javascript库(javascript.js)。可能吗 view.py: def setAppOptions(request, map_name): if request.user.is_authenticated(): app_selected = EzApp.objects.get(app_name=app_name, created_by=request.user) formset = ezAppOptionF

我想同时将var从视图传递到模板和javascript库(javascript.js)。可能吗

view.py:

def setAppOptions(request, map_name):
    if request.user.is_authenticated():
        app_selected = EzApp.objects.get(app_name=app_name, created_by=request.user)
        formset = ezAppOptionFormSet(user=request.user, instance=app_selected)
        if request.method == 'POST':
            formset = ezAppOptionFormSet(request.POST, instance=app_selected, user=request.user)
            if formset.is_valid():
                formset.save()

        return render_to_response("manage_app_options.html", {'formset': formset}, context_instance=RequestContext(request)) 
    else:
        error_msg = u"You are not logged in"
        return HttpResponseServerError(error_msg)
模板:

{% extends "basemap.html" %}
{% block library %}
#I want to pass var to this library and to this template in the same time...
<script type="text/javascript" src="/static/javascript.js"></script>
{% endblock %}
{% block content %}
<table border="1">
<tr>
<td>
    <h1>Define App options</h1>
    {% if formset.errors %}
        <p style="color: red;">
            Please correct the error{{ formset.errors|pluralize }} below.
        </p>
    {% endif %}
    <form method="post" action="" encrypt="multipart/form-data">{% csrf_token %}
            {{ formset.as_p }} 
        <input type="submit" value="Submit" onclick="initialize()">
    </form>
</td>
</tr>
</table>
{% endblock %}
{%extends“basemap.html”%}
{%块库%}
#我想将var同时传递给这个库和这个模板。。。
{%endblock%}
{%block content%}
定义应用程序选项
{%if formset.errors%}

请更正下面的错误{formset.errors | pluralize}}。

{%endif%} {%csrf_令牌%} {{formset.as_p}} {%endblock%}
假设您只想将javascript文件保存为js,实现这一点的一种方法是让您的js
初始化
接受一些配置数据。在html模板(由django呈现,因此可以访问上下文变量)中传递数据

javascript.js

...
function initialize(options) {
...
template.html

<input type="submit" value="Submit" onclick="initialize({
    myvar: {{ value_from_django }},
    other_stuff: 10
})">

您不需要将变量“传递”到库中

只需在脚本标记中设置它,如下所示:

{% block library %}
<script type="text/javascript">
    var foo = "{{ variable }}";
</script>
<script type="text/javascript" src="/static/javascript.js"></script>
{% endblock %}
{%block library%}
var foo=“{variable}}”;
{%endblock%}

然后,您可以在JS中引用它作为
变量
window.foo

什么意思“将它传递到您的javascript库”?如果变量在html中,它肯定可用于您的javascript.JS文件?为什么不告诉我们您的变量是什么,以及您想用它做什么(在html和javascript中)。这个解决方案是可行的,但我是否必须假设不可能从单个视图在模板和javascript.js中使用django标记?除非您直接在模板中包含javascript.js文件。{%include“static/javascript.js%}。这样您就可以维护单独的文件。