Skip to main content
 首页 » 编程设计

python之Django:在上下文中自动导入 MEDIA_URL

2024年09月03日38qq78292959

喜欢暴露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

我想这就是你要找的......