我是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/'
但图片没有出现在网页上,任何人都可以帮我解决这个问题吗?感谢。
答案 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