django 1.5 – 如何在静态标签中使用variables
我目前正在将我项目中的所有静态文件引用迁移到django 1.5引入的新的{%static%}标记中,但是我遇到了问题,有些地方我使用variables来获取内容。 有了新的标签,我不能,有没有办法解决这个问题?
当前代码:
<img src="{{ STATIC_URL }}/assets/flags/{{ request.LANGUAGE_CODE }}.gif" alt="{% trans 'Language' %}" title="{% trans 'Language' %}" />
它应该是什么(这是行不通的):
<img src="{% static 'assets/flags/{{ request.LANGUAGE_CODE }}.gif' %}" alt="{% trans 'Language' %}" title="{% trans 'Language' %}" />
您应该能够使用add
模板filter来连接string:
{% with 'assets/flags/'|add:request.LANGUAGE_CODE|add:'.gif' as image_static %} {% static image_static %} {% endwith %}
你正在做什么不能用static
模板标签,因为它只需要一个string或一个variables:
{% static "myapp/css/base.css" %} {% static variable_with_path %} {% static "myapp/css/base.css" as admin_base_css %} {% static variable_with_path as varname %}
一个更简洁的方法是将{%static%}设置为一个从html开始的variables,以便我们可以以任何我们想要的方式使用它。
{% load static %} {% static "" as baseUrl %} <img src="{{ baseUrl }}/img/{{p.id}}"></img>
我得到了这个工作,通过使用一个空的string的静态path,然后在自己的部分使用我的variables,如下所示:
<a href= "{% static "" %}{{obj.a}}/{{obj.b}}/{{obj.c}}.gz" >Name</a>
@rounin,至less可以使用
{% get_static_prefix %}
当你{%load static%}时会被加载。 这只是更自然然后{%static''%} 🙂