Django 1.6中ImageField的upload_to在模板中不显示图片

0 投票
1 回答
588 浏览
提问于 2025-04-18 12:47

在我的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

class 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的URL下创建了一个名为images/framethumbs的文件夹,里面存放了所有的图片。这可能是权限问题吗?

如果是的话,我该如何以及在哪里设置权限呢?

我使用的是Windows 7电脑。谢谢大家的帮助。

1 个回答

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 }}" />

希望这对你有帮助。

撰写回答