繁体   English   中英

基于类的视图中的MEDIA_URL

[英]MEDIA_URL in class-based view

我无法在基于类的视图中访问MEDIA_URL

我的理解是,我将创建视图,而上下文处理器会将其提供给基于函数的视图。 现在,我尝试切换到基于类,并且不再可以访问MEDIA_URL

上下文处理器是否不适用于基于类的视图? 我现在必须手动将其添加到我的上下文中吗?

这是我的处理器:

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.media',
    'django.core.context_processors.static',
    'django.core.context_processors.request',
    'django.contrib.messages.context_processors.messages',
    'django.core.context_processors.request',
)

我以前的观点看起来像:

def my_view(request):
    context = {
        "foo": "bar"
    }
    return render(request, 'index.html', context)

而且我可以使用{{MEDIA_URL}}

我的基于类的视图如下所示:

class MyView(View):
    def get(self, request):
        context = {
            "foo": "bar"
        }
        return render(request, 'index.html', context)

而且我无法访问{{MEDIA_URL}}

Django 1.8将TEMPLATE_CONTEXT_PROCESSORS的配置移至TEMPLATES设置。 除此之外,我认为您不需要访问模板中的MEDIA_URL 这对我来说是一种难闻的代码气味。 您应该使用从文件存储api生成的网址(即{{ model.field.url }} )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM