如何在模板中显示模型中的图像?
我将在我的模板index.html中显示照片目录(upload_to ='photos')中的图像。怎么办?
例如:
我的模特
class Photo(models.Model):
nazwa = models.ImageField(upload_to='photos', verbose_name='My Photo')
我的观点
def index(request):
img = Photo.objects.all().order_by('-id')
return render_to_response("index.html", {"img": img})
我的网址
urlpatterns = patterns('',
url(r'^/?$', 'album.views.index'),
(r'^static/(.*)$', 'django.views.static.serve', {'document_root':
os.path.join(os.path.dirname(__file__), 'static')}),
)
我的模板,index.html
{% for n in img %}
??
{% endfor %}
答案 0 :(得分:8)
您需要的所有内容都有详细记录here和here。您需要将img传递给模板并使用其url()方法。
在您的模板中,您可以执行以下操作:
{% for n in img %}
<img src="{{ n.nazwa.url }}" />
{% endfor %}
希望这有帮助。
答案 1 :(得分:1)
您的根/项目 urls.py 中缺少以下代码。
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
在您导入 urls.py 之前,您的代码服务器也会返回模块未找到的错误。并且出于某种原因,它必须是根 urls.py,即使您有用于单独应用程序的单独 urls.py 文件
from django.conf import settings
from django.conf.urls.static import static
答案 2 :(得分:0)
在产品案例中,很难找到故障。这减少了一点
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
else:
urlpatterns += staticfiles_urlpatterns()