1

我想从 python Django 传递一个变量并在<img>标签中使用它。我该怎么做?

这是我的代码。

Python-

render(request, 'dashboard/dashboard.html', {"variable_int" : 12})

HTML

<img src="{% static "img/icons/vendor/yahoo_weather/{{variable_int}}.gif" %}" /></td>

我知道我需要在两者之间传递它,{{}}但我没有得到图像。我该怎么做?

4

2 回答 2

3

问题是django首先转换url,然后代码上没有任何变量。

Django改变这个:

{% static "img/icons/vendor/yahoo_weather/{{variable_int}}.gif" %} 

为了这:

"/static/img/icons/vendor/yahoo_weather/%7B%7Bvariable_int%7D%7D.gif"

Django首先调用“函数”来获取静态url,并更改里面的所有代码。您可以尝试调用一个变量 {{ STATIC_URL }}(如果您在 settings.py 中定义了它),该变量将获取静态文件夹的路径,然后将获取变量的值。

尝试这个:

<img src="{{ STATIC_URL}}img/icons/vendor/yahoo_weather/{{variable_int}}.gif" %}" /></td>

在这种情况下,django 应该进行 2 个更改,{{ STATIC_URL}} 和 {{variable_int}} 而不是一个。

于 2013-11-14T10:53:48.060 回答
3

您根本没有正确描述问题。static问题不在于将它传递给模板,这是一个您显然已经知道如何做的绝对基本问题,而是如何在标签内的字符串中使用它,这是一个完全不同的问题。

答案是,你不能轻易。但是你为什么不通过整个路径呢?为什么不{"img_path": "img/icons/vendor/yahoo_weather/12.gif"}呢?

于 2013-11-14T10:45:57.390 回答