我可以在Javascript中使用Django的模板标签吗?比如在jQuery中使用{% form.as_p %}
向页面动态添加表单。
发布于 2011-05-15 22:23:07
是的,我经常这样做。您的javascript必须通过django提供,但如果您只将其作为内联javascript放在html头中,就可以了。
例如:我用它来给我使用的动态表单集加上前缀。
{% extends "base.html" %}
{% block extrahead %}
<script type="text/javascript">
$(document).ready(function() {
{# Append fields for dynamic formset to work#}
{% for fset, cap, _, tid in study_formsets.fset_cap_tid %}
$(function() {
$('.form_container_{{ tid }}').formset({
prefix: '{{ fset.prefix }}',
formCssClass: '{{ tid }}',
extraClasses: ['myrow1', 'myrow2']
});
});
{% endfor %}
});
</script>
{% endblock %}
请注意,在"base.html“中,我有一个加载jquery库的html head
,其中包含{% block extrahead %}{% endblock %}
。
发布于 2011-05-16 04:57:16
你不能在你的Javascript代码中使用Django的模板标签,如果你是这个意思的话。所有Django变量和逻辑在模板呈现并将HttpResponse发送到客户端后停止存在。在Javascript执行的那一刻,客户端(浏览器)不知道您用来呈现模板的变量(例如"form")。
您可以做的是让Javascript使用Django模板呈现的HTML块修改HTML页面。
如果你想在客户端生成HTML,我建议你看看客户端的tempalte库(例如:JQuery Templates -在{% verbatim %} templatetag中使用它们)。
发布于 2014-02-13 02:43:44
如果你想在你渲染的javascript i(这是我的选择)中使用变量,我认为这不是一个好主意。但是如果你想要的是为你的视图、媒体和静态文件生成URL,我经常这样做。
看看这个github:jscssmin
https://stackoverflow.com/questions/6008908
复制相似问题