django 1.6中的ImageField upload_to不显示图像到模板

时间:2014-07-10 11:22:39

标签: python django django-models django-templates

在我的django应用程序中,我创建了一个带有ImageField的django模型。

问题是图像本身没有在模板上呈现。但是,图像路径显示在模板本身上。

当我查看我的媒体文件夹时,我可以看到我上传的图像存储在那里。

settings.py中的媒体根配置如下:

MEDIA_URL = '/media/'

MEDIA_ROOT = ("D:/Work-Backup/LiClipse Workspace/vTryON_DJango_Integration/vTryON/templates/media" 

    )

我的models.py如下

from django.db import models

类VTryON(models.Model):

modelId = models.CharField(max_length=100)
slug= models.SlugField(unique=True)   
image=models.ImageField(upload_to="images/framethumbs/", help_text="not more than 1MB", default ='D:/Work-Backup/LiClipse Workspace/vTryON_DJango_Integration/vTryON/templates/static/images/frame2.jpg')

def __unicode__(self):
    return unicode(self.modelId)

我的模板是

<html lang="eng">
<head>
    <title>vTryOn Attempt Using Django Framework</title>

</head>    
<body class="body">
      {{frame.image}}
</body>
</html>

模板上显示的图像路径如下所示

images/framethumbs/fr_5.jpg 

我在MEDIA_ROOT网址下创建了一个文件夹images / framethumbs,其中存储了所有图像。这是一个许可问题吗?

如果是,那么我如何以及在何处授予权限?

我使用的是Windows 7 PC。提前谢谢。

1 个答案:

答案 0 :(得分:1)

请确保您在urls.py中有一个条目来为静态文件提供服务,如果没有将其添加到urls.py文件中..

urlpatterns += patterns('',
   (r'^media/(?P<path>.*)$', 'django.views.static.serve', {
       'document_root': settings.MEDIA_ROOT}))

现在要获取图像,你应该使用像这样的图像标签......

  <img src="{{ frame.image.url }}" />

希望这有帮助。