Django:在模板中访问表单媒体的原始URL

时间:2013-06-26 09:44:38

标签: python django django-forms django-templates

{{ form.media.js }}{{ form.media.css }}非常适合在Django模板中轻松添加媒体。

我的问题是,我希望能够访问这些媒体的原始网址(不包含<\script type="text/javascript" src="raw_url"><\/script>)(使用headjs包含它们)。

我想实现类似的目标:

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

1 个答案:

答案 0 :(得分:4)

如果你看一下Media类的源代码,会有一个函数:

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]