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 }}).

Другие вопросы по тегам