ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ: Использование Django

Почему я получаю ошибку об импорте DJANGO_SETTINGS_MODULE?

Убедитесь в этом:

  • Переменная окружения DJANGO_SETTINGS_MODULE устанавливается на полностью определенный модуль Python (т.е. «mysite.settings»).
  • Указанный модуль находится на sys.path (import mysite.settings должен работать).
  • Модуль не содержит синтаксических ошибок.

Я не выношу ваш шаблонный язык. Должен ли я его использовать?

Мы считаем, что наш движок шаблонов - это лучшее, что было со времен кускового бекона, но мы понимаем, что выбор языка шаблонов близок к религии. В Django нет ничего, что требовало бы использования языка шаблонов, так что если вы привязаны к Jinja2, Mako или чему-либо еще, не стесняйтесь использовать их.

Должен ли я использовать вашу модель/слой базы данных?

Нет. Как и система шаблонов, слой модели/базы данных отделен от остальной части фреймворка.

Единственное исключение: если вы используете другую библиотеку баз данных, вы не сможете использовать автоматически генерируемый Django администраторский сайт. Это приложение привязано к слою базы данных Django.

Как использовать поля изображений и файлов?

Использование FileField или ImageField в модели требует нескольких шагов:

  1. В вашем файле настроек вам нужно определить MEDIA_ROOT как полный путь к директории, в которой вы хотите, чтобы Django хранил загруженные файлы. (Для повышения производительности эти файлы не хранятся в базе данных). Определите MEDIA_URL как базовый публичный URL этого каталога. Убедитесь, что этот каталог доступен для записи учетной записи пользователя веб-сервера.
  2. Добавьте FileField или ImageField к вашей модели, определив опцию upload_to для указания подкаталога MEDIA_ROOT, который будет использоваться для загруженных файлов.
  3. Все, что будет храниться в вашей базе данных, это путь к файлу (относительно MEDIA_ROOT). Скорее всего, вы захотите использовать удобный атрибут url, предоставляемый Django. Например, если ваш ImageField называется mug_shot, вы можете получить абсолютный путь к вашему изображению в шаблоне с помощью {{ object.mug_shot.url }}.

Как сделать переменную доступной для всех моих шаблонов?

Иногда вашим шаблонам требуется одно и то же. Частым примером могут быть динамически создаваемые меню. На первый взгляд, кажется логичным добавить общий словарь в контекст шаблона.

Лучший способ сделать это в Django - использовать RequestContext. Подробности о том, как это сделать, здесь: Использование RequestContext.

Вернуться на верх