2014-04-23 56 views
1

所以我有一个webfaction项目,我需要创建两个不同的环境,一个服务器django和一个服务器静态文件。Django 1.6图像上传和媒体路径

所以当我从管理面板上传图像时,我可以看到图像放置在我定义的根中,但是具有完整路径。当我返回图像在我看来我得到我的domain.com/full/media/root/path/imagename

这会生成一个断开的链接 - 当我去mydomain.com/uploads/image_name,我可以看到图像文件是在那里但是我的链接指向完整路径,而不是root_url,

你能帮我一下吗?我真的不明白,我怎么能在我看来,解决这个图像链接

<img src="{{ MEDIA_URL }}{{ mymodel.my_image }}" alt="{{ name }}" width="150" height="200" /> 

我明白有类似这样的在这里却没有一个人能正确地引导我关于如何隐藏或改变路径,以多学科根 “上传”

我有我的管理

class Movie(models.Model): 

name = models.CharField(max_length=50) 


def get_file_path(instance, filename): 
    ext = filename.split('.')[-1] 
    filename = "%s.%s" % (uuid.uuid4(), ext) 
    return os.path.join('/home/user/webapps/project/uploads/' , filename) 


my_image = models.ImageField(upload_to = get_file_path, null=True, blank=True) 
def __unicode__(self): 
    return self.name 

工作正常,在我的设置:

MEDIA_ROOT = '/home/user/webapps/project/uploads/' 
MEDIA_URL = '/uploads/' 

和项目网址:

从django.conf.urls进口模式,包括从django.conf导入设置URL

from django.contrib import admin 
    admin.autodiscover() 

    urlpatterns = patterns('',  
    url(r'^admin/', include(admin.site.urls)), 
) 


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

谢谢大家提前

回答

0

首先对于你的模型,你应该创建一个图像字段,并在那里你应该定义你的位置吨至上传图片:

class mymodel(models.Model): 
    name = models.CharField(max_length=50) 
    my_image = models.ImageField(blank=True, null=True,upload_to='/home/user/webapps/project/uploads/') 

,当你想从你的数据库中获取你的模型对象试试这个后显示您的图片后,在您的模板:

<img src="{{ mymodel.my_image.url }}" alt="{{ mymodel.name }}" width="150" height="200" /> 
1

您可以使用:

{{ mymodel.my_image.url }}