我目前正在将项目中的所有静态文件引用迁移到django 1.5引入的新的{% static %}标记,但我遇到了一个问题,在某些地方我使用变量来获取内容。有了新的标签我不能,有没有办法解决这个问题?
当前代码:
<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' %}" />
发布于 2013-05-21 02:45:25
您应该能够使用add
template filter连接字符串
{% with 'assets/flags/'|add:request.LANGUAGE_CODE|add:'.gif' as image_static %}
{% static image_static %}
{% endwith %}
您尝试执行的操作不适用于static
模板标记,因为它只接受字符串或变量:
{% static "myapp/css/base.css" %}
{% static variable_with_path %}
{% static "myapp/css/base.css" as admin_base_css %}
{% static variable_with_path as varname %}
发布于 2018-03-28 12:45:31
无论如何,我认为这是最简单的方法:
<img src="{% static 'assets/flags/'|add:request.LANGUAGE_CODE|add:'.gif' %}" ... >
这是一个古老的问题,我不确定这个方法在当时是否可以做到,但现在,在Django 2.0中,这似乎对我来说很好。
发布于 2015-03-03 11:37:04
一种更简洁的方法是将{% static %}设置为html开头的变量,这样我们就可以随心所欲地使用它。
{% load static %}
{% static "" as baseUrl %}
<img src="{{ baseUrl }}/img/{{p.id}}"></img>
https://stackoverflow.com/questions/16655851
复制相似问题