不使用静态标记内的变量在浏览器中显示图像

时间:2017-05-22 02:43:11

标签: django concatenation django-staticfiles

我需要在静态标记内连接两个字符串,我检查了之前关于如何在django模板中连接字符串的问题,我找到了 this answer ,但是当我使用该解决方案时, broser(Firefox)不显示图像。

详细说明: 这是我的代码,假设user.if的值是1:

{% with "images/my_twitter_wordcloud_"|add:user.id|add:".png" as image_static %} <center> <img src="{% static 'image_static' %}" width="650" height="350" style="margin-left: 10%;"/> </center> {% endwith %}

当我在浏览器中查看检查器时,它显示的图像如下:

<img src="/static/image_static" style="margin-left: 10%;" height="350" width="650">

我认为它应该是:

    <img src="/static/images/my_twitter_wordcloud_"|add:user.id|add:"png" style="margin-left: 10%;" height="350" width="650">

我检查了关于添加引用的django文档,我尝试使用&#34;&#34;和&#34;&#34;添加后,但似乎django没有解释变量,我做错了什么?

感谢您的帮助。 PD:我为我的英语道歉。

编辑: 做@Selcuk说的话,检查员告诉我这个:

<img src="/static/.png" style="margin-left: 10%;" height="350" width="650">

很奇怪,即使我使用&#39;&#39;而不是&#34;&#34;,所以我不明白什么是错的,如果我把它(其中user.id的值是1):

<center><img src="{% static 'images/my_twitter_wordcloud_1.png' %}"

正确显示图像。

2 个答案:

答案 0 :(得分:0)

删除image_static周围的引号并使用变量名称。也就是说,替换以下内容:

{% static 'image_static' %}

用这个

{% static image_static %}

作为旁注,您还应在图片扩展名(.)之前添加一个点(png)。

答案 1 :(得分:0)

为了将来会来这里的人。

avarage_rating 可以包含此列表 [0,1,2,3,4,5] 中的任何单个值,包括小数。

所以使用单个变量作为值,加载动态图像如下。

{{avarage_rating | first }} == 第一个数字和 .svg 附加到它。 这里s是图像的名字首字母。

<code><img src="{% static 'img/s'%}{{avarage_rating | first }}.svg"><span>{{avarage_rating}}</span></code>