Какова цель apps.py в Django 1.9?

Ответы:

136

Назначение apps.pyфайла:

Этот файл создан, чтобы помочь пользователю включить любую конфигурацию приложения для приложения. Используя это, вы можете настроить некоторые атрибуты приложения.

Из Application Configurationдокументации:

Объекты конфигурации приложения хранят метаданные для приложения. Некоторые атрибуты можно настроить в подклассах AppConfig. Другие устанавливаются Django и доступны только для чтения.

Пример из документов:

Допустим, вы создаете подключаемое приложение под названием "Rock ’n’ roll", а затем, чтобы указать имя администратора, мы можем сделать следующее:

В rock_n_rollприложении мы создаем RockNRollConfigкласс AppConfig.

#rock_n_roll/apps.py
from django.apps import AppConfig

class RockNRollConfig(AppConfig): # Our app config class
    name = 'rock_n_roll'
    verbose_name = "Rock ’n’ roll"

Мы можем заставить ваше приложение загружать этот AppConfigподкласс по умолчанию, указав default_app_configв rock_n_roll/__init__.pyфайле.

# rock_n_roll/__init__.py    
default_app_config = 'rock_n_roll.apps.RockNRollConfig'

Это приведет RockNRollConfigк использованию, когда INSTALLED_APPSпросто содержит 'rock_n_roll'. Это позволяет нам использовать AppConfigфункции, не требуя от наших пользователей обновления их INSTALLED_APPSнастроек.

Рахул Гупта
источник
К сожалению, я не получил вашего ответа
hspandher
2
without requiring our users to update their INSTALLED_APPS setting.: Что это означает: В основном, если я не делаю default_app_config = 'rock_n_roll.apps.RockNRollConfig'этого, я должен упомянуть в INSTALLED_APPSdefault_app_config = 'rock_n_roll.apps.RockNRollConfig'
Сантош
15

Это рекомендуемое место для размещения конфигурации вашего приложения . Эта функция существует с версии 1.7, но для повышения ее использования и упрощения настройки apps.pyфайл был добавлен в шаблон приложения по умолчанию.

knbk
источник