2013-06-26 115 views
0

{{ form.media.js }}{{ form.media.css }}非常适合在Django模板中轻松包含媒体。Django:访问模板中的表单媒体的原始网址

我的问题是,我想获得这些媒体的访问原始的URL(不<\script type="text/javascript" src="raw_url"><\/script>)(他们使用headjs包括)。

我想实现这样的事情:如果你看看媒体类的源代码将有一个功能

<script> 
{% for script in form.media.js %} 
    head.js("{{ script.raw_url }}"); 
{% endfor %} 
</script> 
+0

此外,调用head.js多次你有尽可能多的脚本,不会给你任何好处。 http://headjs.com/ – ElmoVanKielmo

+0

我想你不明白我的问题:“{{script.raw_url}}”在django中不存在。你只需要一个块{{form.media.js}},它被替换为:<\ script type =“text/javascript”src =“url1”><\script> ...我想得到这个“url1” – gueux

+0

我想以这种方式调用head.js来并行加载脚本。 – gueux

回答

4

def render_js(self): 
    return [u'<script type="text/javascript" src="%s"></script>' % self.absolute_path(path) for path in self._js] 

所以,你可以去同样的方式。既然我们不能在模板中使用下划线属性我们可以添加方法窗体类像这样使用它:

from django import forms 

class TestForm(forms.Form): 
    def get_media_js(self): 
     return [self.media.absolute_path(path) for path in self.media._js]