我可以在Javascript中使用Django的模板标签吗?就像在jQuery中使用{% form.as_p %}
来动态添加表单到页面一样。在jQuery/Javascript中使用Django模板标签?
回答
是的,我经常这样做。你的JavaScript必须通过django来提供,但是如果你只是将它作为内嵌JavaScript的HTML头部,你会没事的。
例如:我使用它将前缀放在我使用的动态formset上。在 “base.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 %}
注意我有一个HTML head
在jQuery的库被加载,包含{% block extrahead %}{% endblock %}
。
是否有任何现代的方式如何做到这一点?在html中混合javascript并不完全不显眼.. – Mejmo 2013-09-10 16:12:22
@Mejmo - 好吧,你可以让你的javascript文件动态地由django提供服务(例如,为js文件起草一个模板,为它生成一个视图,并将它添加到你的网址。 PY)。当然,与内联JS相比,这可能会效率更低,管理更少(每个页面加载需要两个动态处理的文件) - 除非在许多模板中需要相同的动态JS。真的,最好的方法是使用静态JS文件,这些文件处理来自DOM的数据(可能最初隐藏)或者在json数据中动态提供服务。如果您需要JS中的模板标签逻辑,请将其写入JS中。 – 2013-09-10 16:39:42
请检查此; ''你看到我在这个脚本中使用Django模板语言的任何原因('var station_id = {{station.id}}')不起作用。 – 2015-05-27 05:13:40
如果这就是你的意思,你不能从你的Javascript代码中使用Django的模板标签。所有的Django变量和逻辑在模板被渲染并且HttpResponse已经被发送到客户端之后都会停止。在Javascript执行的那一刻,客户端(浏览器)没有概念提供模板的变量(比如“form”)。
您可以做的是让Javascript使用由您的Django模板呈现的HTML块来修改您的HTML页面。
如果你想在客户端生成HTML,我建议查看客户端tempalte库(例如JQuery Templates - 使用那些与{% verbatim %} templatetag)。
如果你想在渲染的javascript里面使用变量(这是我的opnion),认为这是一个坏主意。但是,如果你只想为你的视图,媒体和静态文件生成URL,我会做很多。
看看这个github上:jscssmin
- 1. 在JavaScript中使用django模板标签
- 2. 使用{%和%} Django中HTML模板标签
- 3. 如何在模板中使用Django自定义模板标签?
- 4. Django模板:在模板标签中使用双大括号
- 5. 如何在Django的模板标签中使用模板变量?
- 6. 如何在css标签中使用django模板标签?
- 7. 模板标签Django
- 8. Django - 模板标签
- 9. Django模板标签
- 10. Django模板:在标签
- 11. 模板标签中的Django
- 12. Django - 使用模板标签和'with'?
- 13. Django的模板标签+使用fabric.js
- 14. 在Django中编写模板标签
- 15. Django在模板标签中读取cookie
- 16. Django模板在Eclipse中的标签
- 17. 在django中加入模板块标签
- 18. Django模板标签错误
- 19. Django - 包含模板标签
- 20. Django:调试模板标签
- 21. 如何在django模板中的url模板标签中嵌入标签?
- 22. 使用Django模板标签的Mako模板
- 23. 使用Django模板标签的Jinja2模板
- 24. Django模板标签,生成模板块标签
- 25. 在角4模板中使用django标签?
- 26. 如何在django模板中设置变量(使用set标签)?
- 27. 可以在JS脚本中使用Django模板标签
- 28. 如何在jQuery中使用Django模板标签和过滤器?
- 29. 在Django的url模板标签中使用日期
- 30. 的Django在网址中使用模板标签
我想你知道,当你试试吧:) – Konstant 2011-05-15 14:17:29