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}}
1 ответ
Джанго 1.8 перенесла конфигурацию TEMPLATE_CONTEXT_PROCESSORS
к TEMPLATES
установка. Кроме того, я не думаю, что вам не нужно иметь доступ MEDIA_URL
в шаблоне. Это неприятный запах для меня. Вы должны использовать URL-адрес, сгенерированный из API хранилища файлов (т.е. {{ model.field.url }}
).