Параметры MEDIA_ROOT и MEDIA_URL показывают, куда будут складываться файлы, загружаемые пользователями вашего Django-сайта.
Но как их правильно настроить?
Посмотрите на выдержку из settings.py одного проекта:
Как видите, здесь настроено так, как говорится в комментариях, любезно предоставленных нам разработчиками Django. Это правило, которое следует соблюдать, чтобы потом не страдать, перенастраивая подключенное стороннее приложение.
Подключил я как-то приложение django-attachments к своему проекту. Из-за того, что параметры MEDIA_ROOT и MEDIA_URL были настроены не по стандарту, файлы загружались, но в админке не отображались - т.к. разработчик этого стороннего приложения думал, что мы люди "хорошие" и следуем правилам Django.
Кстати, обратите внимание, что параметры settings.py вы можете использовать в своих приложениях. Вот, к примеру, выдержка главного urls.py моего проекта:
Здесь мы обращаемся к настройкам проекта так: settings.MEDIA_ROOT или settings.MEDIA_ROOT. Это позволяет нам соблюдать DRY принцип.
Но как их правильно настроить?
Посмотрите на выдержку из settings.py одного проекта:
# Absolute filesystem path to the directory that will hold user-uploaded files. # Example: "/var/www/example.com/media/" MEDIA_ROOT = 'media/' # URL that handles the media served from MEDIA_ROOT. Make sure to use a # trailing slash. # Examples: "http://example.com/media/", "http://media.example.com/" MEDIA_URL = 'http://127.0.0.1:8000/media/'
Как видите, здесь настроено так, как говорится в комментариях, любезно предоставленных нам разработчиками Django. Это правило, которое следует соблюдать, чтобы потом не страдать, перенастраивая подключенное стороннее приложение.
Подключил я как-то приложение django-attachments к своему проекту. Из-за того, что параметры MEDIA_ROOT и MEDIA_URL были настроены не по стандарту, файлы загружались, но в админке не отображались - т.к. разработчик этого стороннего приложения думал, что мы люди "хорошие" и следуем правилам Django.
Кстати, обратите внимание, что параметры settings.py вы можете использовать в своих приложениях. Вот, к примеру, выдержка главного urls.py моего проекта:
# Импортируем настройки проекта from django.conf import settings if settings.DEBUG: # Устанавливаем настройки для обработки картинок, загруженных пользователем urlpatterns += patterns('', (r'^' + settings.MEDIA_ROOT + '(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), )
Здесь мы обращаемся к настройкам проекта так: settings.MEDIA_ROOT или settings.MEDIA_ROOT. Это позволяет нам соблюдать DRY принцип.
Комментариев нет:
Отправить комментарий