0

我是 django 的新手。我正在 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 错误。

4

2 回答 2

3

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

更新

同样在您的 urls.py 中:

if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^' + settings.MEDIA_URL.lstrip('/'), 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT})
于 2011-07-23T12:03:16.563 回答
0

它起作用了!...在 urls.py 文件中导入 setting.MEDIA_ROOT 后,我添加了一个媒体规则,因此它现在可以工作了..

BTW 它也需要

{{ about.image.url }} 

正如@zsquare(thanks) 之前所说,这是媒体规则

(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': MEDIA_ROOT}),
于 2011-07-26T19:28:41.573 回答