[英]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.