Часто задаваемые вопросы: использование Django ¶
Почему у меня появляется ошибка при импорте DJANGO_SETTINGS_MODULE
? ¶
Убедитесь, что:
- Переменная окружения
DJANGO_SETTINGS_MODULE
установлен на полностью квалифицированный модуль Python (например, "mysite.settings"). - Указанный модуль находится в
sys.path
( должен работать).import mysite.settings
- Модуль не содержит синтаксических ошибок.
Я не могу поддерживать ваш язык шаблонов. Я должен его использовать? ¶
Иногда мы думаем, что наш шаблонизатор - это лучшее, что есть на свете, но мы понимаем, что выбор языка шаблонов близок к выбору религии. В Django нет ничего, что требовало бы использования его языка шаблонов, поэтому, если вам нравится Jinja2, Mako или что-то еще, не стесняйтесь их использовать.
Должен ли я использовать ваш уровень модели / базы данных? ¶
Нет. Как и система шаблонов, уровень модели / базы данных отделен от остальной системы.
Единственное исключение: если вы используете другую библиотеку базы данных, вы не сможете использовать сайт администратора, автоматически созданный Django. Это приложение связано с уровнем базы данных Django.
Как я могу использовать поля изображения и файла? ¶
Использование поля FileField
или поля ImageField
в модели включает несколько шагов:
- В вашем файле настроек вы должны указать
MEDIA_ROOT
абсолютный путь к каталогу, в котором Django может сохранять загруженные файлы (из соображений производительности эти файлы не хранятся в базе данных). Укажите вMEDIA_URL
базовом общедоступном URL-адресе, соответствующем этому каталогу. Убедитесь, что этот каталог доступен для записи пользователю веб-сервера. - Добавьте поле
FileField
илиImageField
в свой шаблон, установив параметр,upload_to
указывающий, в какой подкаталогMEDIA_ROOT
файлы должны быть загружены. - Все, что будет храниться в базе данных, - это путь к файлу (относительно
MEDIA_ROOT
). Атрибут,url
предлагаемый Django, очень удобен и распространен . Например, при рассмотренииImageField
именованного изображенияmug_shot
вы можете получить абсолютный URL-адрес этого изображения в шаблоне с помощью .{{ object.mug_shot.url }}
Как сделать переменную доступной для всех моих шаблонов? ¶
Иногда всем вашим шаблонам требуется одно и то же. Типичный пример - динамически генерируемые меню. На первый взгляд кажется логичным добавить общий словарь в контекст шаблона.
Лучший способ сделать это с помощью Django - использовать файл RequestContext
. Подробности о том, как это сделать, можно найти здесь: Использование RequestContext .