簡體   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