在我的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。提前谢谢。
答案 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 }}" />
希望这有帮助。