图像可以上传到位于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,}),
)
在模板中
<img src="{{MEDIA_URL}}/{{pic}}" alt="Profile Picture" width="200"/>
但是,图像仍然没有在网站上显示,但它确实存储在上传文件中。有人可以帮我吗?感谢
答案 0 :(得分:1)
假设:
MEDIA_URL = '/media/'
以下模板代码:
<img src="{{MEDIA_URL}}/{{pic}}" alt="Profile Picture" width="200"/>
图片src
不可能是/upload/Desert.jpg
。路径应以/media/
开头。 {},} MEDIA_URL
的可能性未定义,pic
的值upload/Desert.jpg
为TEMPLATE_CONTEXT_PROCESSORS
。如果是这种情况,那么您可能错过了媒体模板上下文处理器。将TEMPLATE_CONTEXT_PROCESSORS = (
...
'django.core.context_processors.media',
)
更改为:
MEDIA_URL
这将使您的模板上下文中提供MEDIA_URL
。然后,你还需要删除它后面的斜杠,否则你最终会得到两个({{ MEDIA_URL }}/{{ pic }}
带有斜线的结尾),即:
而不是:
{{ MEDIA_URL }}{{ pic }}
使用:
MEDIA_URL
<强>更新强>
如果仍然没有获得RequestContext
的值,那么您可能没有使用RequestContext
。您必须在render_to_response
中包装视图的上下文,以便模板上下文处理器能够完成它们的工作。
如果您使用的是return render_to_response('template.html', { ... context here ... }, context_instance=RequestContext(request))
,那么:
render
如果你正在使用Django 1.3+,你可以使用return render('template.html', { ... context here ... })
方法,它会自动为你做这个:
{{1}}
答案 1 :(得分:0)
在设置中,这对我不起作用
TEMPLATE_CONTEXT_PROCESSORS = (
...
'django.core.context_processors.media',
)
我使用django.core....
代替了django.template....
TEMPLATE_CONTEXT_PROCESSORS = (
...
'django.template.context_processors.media',
)