从模型到模板Django显示图像

从模型到模板Django显示图像,django,image,templates,Django,Image,Templates,图片可以上传到mysite文件中的文件“upload”,这里是我的代码 setting.py MEDIA_ROOT = 'C:/Python26/mysite/upload/media/' MEDIA_URL = '/media/' 在url.py中 urlpatterns = patterns('', url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root'

图片可以上传到mysite文件中的文件“upload”,这里是我的代码 setting.py

MEDIA_ROOT = 'C:/Python26/mysite/upload/media/'
MEDIA_URL = '/media/'
在url.py中

urlpatterns = patterns('',

   url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
            {'document_root': settings.MEDIA_ROOT,}),
)
urlpatterns=patterns(“”,
url(r'^media/(?P.*)$,'django.views.static.service',
{'document_root':settings.MEDIA_root,}),
)
在模板中

 <img src="{{MEDIA_URL}}/{{pic}}" alt="Profile Picture" width="200"/>

然而,该图像仍然没有显示在网站上,但它确实存储在上传文件中。有人能帮我吗?感谢

给予:

MEDIA_URL = '/media/'
以及以下模板代码:

<img src="{{MEDIA_URL}}/{{pic}}" alt="Profile Picture" width="200"/>
这将使
MEDIA\u URL
在模板上下文中可用。然后,您还需要删除它后面的斜杠,否则您将得到两个(
MEDIA\u URL
以斜杠结尾),即:

而不是:

{{ MEDIA_URL }}/{{ pic }}
使用:

更新

如果您仍然没有获得
MEDIA\u URL
的值,那么您可能没有使用
RequestContext
。您必须将视图的上下文包装在
RequestContext
中,以便模板上下文处理器完成它们的工作

如果使用的是
呈现到\u响应
,则:

return render_to_response('template.html', { ... context here ... }, context_instance=RequestContext(request))
如果您使用的是Django 1.3+,只需使用
render
方法即可,该方法将自动为您执行以下操作:

return render('template.html', { ... context here ... })

在设置中,这对我不起作用

TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'django.core.context_processors.media',
)
我使用了
django.template…

TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'django.template.context_processors.media',
)

当你的html呈现
src
的值是什么?它是
图像的正确位置
/upload/Desert.jpg
不对,也许它应该是
/media/Desert.jpg
?我这样做了,但结果是
谢谢:)我想{media\u URL}是upload/,我想知道MEDIA_ROOT='C:/Python26/mysite/upload/MEDIA/'是否有任何问题,但我无法判断
MEDIA_URL
是否仍然未定义。另一个可能的问题是您没有使用
RequestContext
。请参阅上面的更新。我使用的是Django1.4,我将代码更改为render('template.html',{…context here…})将
{%debug%}
添加到模板中并检查模板上下文(如果在页面上查看源代码,则更容易)。如果
MEDIA\u URL
不在那里(当然不会在那里),并且您正在使用
render
,那么它将返回到
模板\u上下文\u处理器
。确保它确实是你所认为的。您可能希望尝试
python manage.py shell
,然后从django.conf import settings和
settings.TEMPLATE\u CONTEXT\u PROCESSORS
运行
,以查看它真正设置为什么。
TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'django.core.context_processors.media',
)
TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'django.template.context_processors.media',
)