首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >django 1.5 -如何在静态标签中使用变量

django 1.5 -如何在静态标签中使用变量
EN

Stack Overflow用户
提问于 2013-05-21 02:24:56
回答 5查看 50.6K关注 0票数 120

我目前正在将项目中的所有静态文件引用迁移到django 1.5引入的新的{% static %}标记,但我遇到了一个问题,在某些地方我使用变量来获取内容。有了新的标签我不能,有没有办法解决这个问题?

当前代码:

代码语言:javascript
复制
<img src="{{ STATIC_URL }}/assets/flags/{{ request.LANGUAGE_CODE }}.gif" alt="{% trans 'Language' %}" title="{% trans 'Language' %}" />

它应该是什么(这不起作用):

代码语言:javascript
复制
<img src="{% static 'assets/flags/{{ request.LANGUAGE_CODE }}.gif' %}" alt="{% trans 'Language' %}" title="{% trans 'Language' %}" />
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-05-21 02:45:25

您应该能够使用add template filter连接字符串

代码语言:javascript
复制
{% with 'assets/flags/'|add:request.LANGUAGE_CODE|add:'.gif' as image_static %}
  {% static image_static %}
{% endwith %}

您尝试执行的操作不适用于static模板标记,因为它只接受字符串或变量:

代码语言:javascript
复制
{% static "myapp/css/base.css" %}
{% static variable_with_path %}
{% static "myapp/css/base.css" as admin_base_css %}
{% static variable_with_path as varname %}
票数 170
EN

Stack Overflow用户

发布于 2018-03-28 12:45:31

无论如何,我认为这是最简单的方法:

代码语言:javascript
复制
<img src="{% static 'assets/flags/'|add:request.LANGUAGE_CODE|add:'.gif' %}" ... >

这是一个古老的问题,我不确定这个方法在当时是否可以做到,但现在,在Django 2.0中,这似乎对我来说很好。

票数 36
EN

Stack Overflow用户

发布于 2015-03-03 11:37:04

一种更简洁的方法是将{% static %}设置为html开头的变量,这样我们就可以随心所欲地使用它。

代码语言:javascript
复制
{% load static %}
{% static "" as baseUrl %}
<img src="{{ baseUrl }}/img/{{p.id}}"></img>
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16655851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档