Проблема обновления media_root в django settings.py

Я пытаюсь настроить MEDIA_ROOT, однако, когда я устанавливаю это в файле settings.py, он, кажется, не распознается. Например, мой settings.py выглядит так:

...

MEDIA_ROOT = '/static/files/'

...

И в шаблоне (чтобы проверить это изменение) - я пытался:

Media root: {{ MEDIA_ROOT }}
static url: {{STATIC_URL }}

Статический URL-адрес отображается нормально, и я могу обновить и изменить его, и эти изменения отражены в тестовом шаблоне. Однако корень медиа всегда пустая строка. Есть ли какие-то дополнительные настройки, необходимые для начала использования MEDIA_ROOT - может кто-то указать мне на документацию, если так?

1 ответ

Решение

Есть две переменные контекста, которые должны быть доступны по умолчанию (если вы используете экземпляр RequestContext при рендеринге вашего шаблона:

MEDIA_URL - предоставлено django.core.context_processors.media

STATIC_URL - предоставлено django.code.context_processors.static

Оба эти контекстных процессора находятся в списке по умолчанию, как вы можете видеть на https://docs.djangoproject.com/en/1.3/ref/settings/

MEDIA_ROOT предполагается, что это путь к файловой системе, и используется для загрузки и сохранения медиа на диске. Не должно быть никаких причин использовать его в шаблоне. Если вам действительно нужен доступ к нему, достаточно просто написать собственный контекстный процессор для его предоставления.

Документация по медиапроцессору, кстати, находится по адресу https://docs.djangoproject.com/en/1.3/ref/templates/api/

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