FAQ: Использование Django

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

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

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

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

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

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

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

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

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

Использование a FileFieldили an 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 .

Copyright ©2021 All rights reserved