喜欢暴露here ,可以在 settings.py 中设置 MEDIA_URL(例如我指向 Amazon S3)并通过 {{ MEDIA_URL }} 在 View 中提供文件。由于 MEDIA_URL 不会自动出现在上下文中,因此必须手动将其添加到上下文中,因此,例如,以下工作:
#views.py
from django.shortcuts import render_to_response
from django.template import RequestContext
def test(request):
return render_to_response('test.html', {}, context_instance=RequestContext(request))
这意味着我必须在每个 view.py 文件中添加 from django.template import RequestContext 并且在每个响应中我必须明确指定 context_instance=RequestContext(request).
有没有办法自动(DRY)将 MEDIA_URL 添加到默认上下文?提前致谢。
请您参考如下方法:
这个用途有一个通用 View :
direct_to_template(request, template, extra_context=None, mimetype=None, **kwargs)
它没有很好的文档记录(在我看来:它没有说明它使用了 RequestContext),所以我建议您检查实现:
http://code.djangoproject.com/browser/django/trunk/django/views/generic/simple.py
我想这就是你要找的......
