如何在Django中显示模型中的图像?

时间:2012-02-29 11:12:36

标签: django

如何在模板中显示模型中的图像?

我将在我的模板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 %}

3 个答案:

答案 0 :(得分:8)

您需要的所有内容都有详细记录herehere。您需要将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()