2011-07-23 64 views
0

我是django的新手。我正在用django 1.3开发一个项目。问题是我是从管理面板如何显示从管理面板Django 1.3上传的模板中的图像

class About(models.Model): 

    image = models.ImageField(upload_to='about') 
    files = models.FileField(upload_to='about') 

这里上传图像是我的模板标签

<img class="profile_pic" src="{{ about.image }}" /> 

我的设置文件是如下

MEDIA_ROOT = path("media/") 
MEDIA_URL = '/media/' 
STATIC_ROOT = '' 
STATIC_URL = '/static/' 
ADMIN_MEDIA_PREFIX = '/static/admin/' 
STATICFILES_DIRS = (
    path('static/'), 
) 

我检查了图片上传到/ media/about/image_name。问题是它在模板中以“/ about/imagename”的形式呈现,但没有显示。当我手动去那个图像的URL它显示一个404错误。

回答

0

它的工作......在urls.py文件导入setting.MEDIA_ROOT后然后我加了一个媒体排除所以其现在的工作..

BTW它还需要

{{ about.image.url }} 

为@zsquare(感谢)前面说这是媒体的规则

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

有点忘了这种可能性。 – zsquare

+0

你的解决方案可行,但从django服务媒体并不是一个好主意。 Apache等等更适合于此。检查我更新的答案。 – zsquare

3

<img class="profile_pic" src="{{ about.image.url }}" />

在你的urls.py UPDATE

也!

if settings.DEBUG: 
    urlpatterns += patterns('', 
     (r'^' + settings.MEDIA_URL.lstrip('/'), 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}) 
+0

没了!不工作。但图像现在显示的路径应该是确定的。我应该使用媒体文件夹的任何url规则吗? – themunna