首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在jQuery/Javascript中使用Django模板标记?

在jQuery/Javascript中使用Django模板标记?
EN

Stack Overflow用户
提问于 2011-05-15 22:12:31
回答 4查看 36.3K关注 0票数 25

我可以在Javascript中使用Django的模板标签吗?比如在jQuery中使用{% form.as_p %}向页面动态添加表单。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-15 22:23:07

是的,我经常这样做。您的javascript必须通过django提供,但如果您只将其作为内联javascript放在html头中,就可以了。

例如:我用它来给我使用的动态表单集加上前缀。

代码语言:javascript
复制
{% 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 %}

票数 32
EN

Stack Overflow用户

发布于 2011-05-16 04:57:16

你不能在你的Javascript代码中使用Django的模板标签,如果你是这个意思的话。所有Django变量和逻辑在模板呈现并将HttpResponse发送到客户端后停止存在。在Javascript执行的那一刻,客户端(浏览器)不知道您用来呈现模板的变量(例如"form")。

您可以做的是让Javascript使用Django模板呈现的HTML块修改HTML页面。

如果你想在客户端生成HTML,我建议你看看客户端的tempalte库(例如:JQuery Templates -在{% verbatim %} templatetag中使用它们)。

票数 13
EN

Stack Overflow用户

发布于 2014-02-13 02:43:44

如果你想在你渲染的javascript i(这是我的选择)中使用变量,我认为这不是一个好主意。但是如果你想要的是为你的视图、媒体和静态文件生成URL,我经常这样做。

看看这个github:jscssmin

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6008908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档