Django上传的图片无法在模板中显示

时间:2013-10-22 08:27:08

标签: django templates

我是Django的新手,遇到模板中的图像渲染问题。 这是我的模板代码:

{% for project in projectList %}

        <div class="col-lg-4 col-sm-6">
        <div class="preview">
          <div class="image">
            <a href="#"><img src="{{ MEDIA_URL }}{{ project.photo }}" class="img-responsive" alt="{{ project.name }}"></a>
          </div>
          <div class="options">
            <h3>{{ project.name }}</h3>
            <p>{{ project.description }}</p>
            <div class="btn-group"><a class="btn btn-success" href="#">Preview</a></div>
            </div>
          </div>
        </div>

        {% endfor %}

我将MEDIA_URL设置如下:

MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'media/').replace('\\', '/') 
MEDIA_URL = '/media/'     

但图片没有出现在网页上,任何人都可以帮我解决这个问题吗?感谢。

1 个答案:

答案 0 :(得分:1)

{{project.photo}}应为{{project.photo.url}}

更新

<a href="#"><img src="/{{ project.photo.url }}" class="img-responsive" alt="{{ project.name }}"></a>

确保设置了Web服务器,以便实际从MEDIA_ROOT文件夹中检索对MEDIA_URL的请求。

如果你想让Django解析MEDIA_URL和STATIC_URL,请在你的根urls.py中添加以下行。

from django.conf import settings
from django.conf.urls.static import static 
from django.contrib.staticfiles.urls import staticfiles_urlpatterns 

urlpatterns += staticfiles_urlpatterns() 
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

来源:http://chat.stackoverflow.com/rooms/28837/discussion-between-paulo-bu-and-sheshkovsky