0
我無法在基於課堂的視圖中訪問MEDIA_URL
。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? Django 1.8將'TEMPLATE_CONTEXT_PROCESSORS'的配置移到了'TEMPLATES'設置。除此之外,我不認爲你不需要訪問模板中的'MEDIA_URL'。這對我來說是一種不好的代碼味道。您應該使用從文件存儲API生成的URL(即'{{model.field.url}}')。 –
我剛剛從1.7開始使用1.8,並沒有意識到他們已經做出了改變。這解決了我的問題。 此外,我沒有意識到我能夠訪問媒體,我只是切換到它,它完美的工作,謝謝你的提示。當我去閱讀文檔時,我不得不拾起Django/Python。 如果您可以發表您的評論作爲答案,我會接受它。 – mitnosirrag