¿Cuál es el propósito de apps.py en Django 1.9?

Respuestas:

136

Propósito del apps.pyarchivo:

Este archivo se crea para ayudar al usuario a incluir cualquier configuración de la aplicación. Con esto, puede configurar algunos de los atributos de la aplicación.

De la Application Configurationdocumentación:

Los objetos de configuración de la aplicación almacenan metadatos para una aplicación. Algunos atributos se pueden configurar en las subclases de AppConfig. Otros son configurados por Django y de solo lectura.

Ejemplo de los documentos:

Digamos que está creando una aplicación conectable llamada "Rock ’n’ roll", luego para proporcionar un nombre apropiado para el administrador, podemos hacer lo siguiente:

En la rock_n_rollaplicación, creamos una RockNRollConfigclase 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"

Podemos hacer que su aplicación cargue esta AppConfigsubclase de forma predeterminada especificando default_app_configen el rock_n_roll/__init__.pyarchivo.

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

Hacer esto hará RockNRollConfigque se use cuando INSTALLED_APPSsolo contiene 'rock_n_roll'. Esto nos permite hacer uso de AppConfigfunciones sin requerir que nuestros usuarios actualicen su INSTALLED_APPSconfiguración.

Rahul Gupta
fuente
Lamentablemente no he tenido su respuesta, aunque
hspandher
2
without requiring our users to update their INSTALLED_APPS setting.: ¿Qué significa esto? Básicamente, si no lo hago default_app_config = 'rock_n_roll.apps.RockNRollConfig', tengo que mencionarlo en INSTALLED_APPSdefault_app_config = 'rock_n_roll.apps.RockNRollConfig'
Santhosh Yedidi
15

Es el lugar recomendado para colocar la configuración de su aplicación . Esta característica ha estado aquí desde 1.7, pero para promover su uso y permitir una configuración más fácil, el apps.pyarchivo se ha agregado a la plantilla de aplicación predeterminada.

knbk
fuente