Django - 可以在静态文件夹中显示ImageField对象吗?

时间:2014-02-26 00:27:18

标签: django django-templates django-views django-staticfiles django-models

这是我的settings.py:

STATIC_URL = '/static/'

# Additional locations of static files
 STATICFILES_DIRS = (
    '/home/userName/project/app/static',
)

假设我的视图正在将ImageField对象传递给模板。所以如文档中所述:

https://docs.djangoproject.com/en/1.5/ref/models/fields/#django.db.models.fields.files.FieldFile.url

我可以通过

访问图片的网址
 {{ FieldFile.url }}

在我的模板中。如果我尝试访问图像的URL,它可以工作,但是,我还需要能够加载静态。我想做这样的事情:

{% load staticfiles %}

<img src="{% static "{{ FieldFile.url }}" %}" alt="" />

然而,这不起作用。假设FieldFile.url是

images/imageName.jpg

当我做的时候

<img src="{% static "images/imageName.jpg" %}" alt="" />

它可以工作,但是当我使用

时它不起作用
{{ FieldFile.url }}

出于某种原因,怎么来的?

注意:当我尝试

{% load staticfiles %}

<img src="{% static "{{ FieldFile.url }}" %}" alt="" />
使用谷歌浏览器

和'检查元素',它显示了这个

<img src="/static/%7B%7B%20FieldFile.url%20%7D%7D" alt="" />

1 个答案:

答案 0 :(得分:4)

由于您已经位于模板标记内,因此不需要{{ }}

<img src="{% static FieldFile.url %}" alt="" />