Javascript Django同时将变量从视图传递到两个模板
我想同时将var从视图传递到模板和javascript库(javascript.js)。可能吗 view.py: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
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%}。这样您就可以维护单独的文件。