¡Muy bien! Ya creamos nuestra flamante aplicación libreta y hasta definimos cómo será nuestra tabla de Proveedor dentro del archivo models.py. Parece que tenemos todo listo para que Django sepa de nuestros proveedores, ¿verdad?
¡Casi! Hay un paso crucial que no podemos olvidar. Aunque nuestra app libreta y su modelo Proveedor existen en sus carpetitas, nuestro proyecto principal Django (el que llamamos agenda) todavía no tiene idea de que esta nueva app existe. Es como si hubiéramos construido una habitación nueva en nuestra casa, ¡pero no le hubiéramos puesto una puerta desde el pasillo principal! Nadie sabría cómo llegar.
Debemos "conectar" nuestra nueva app al proyecto principal para que Django la reconozca.
settings.py y INSTALLED_APPSPara que nuestro proyecto Django "se entere" de que existe la app libreta y la tenga en cuenta, necesitamos registrarla en el archivo de configuraciones principal del proyecto.
¿Recuerdas el archivo settings.py? Es el que está dentro de la carpeta de la aplicación general de tu proyecto (en nuestro ejemplo, sería agenda/settings.py – la carpeta agenda interna, no la raíz del proyecto).
Abre ese archivo settings.py en VS Code. Verás un montón de configuraciones. Busca una sección que se llama INSTALLED_APPS. Se verá algo así (el orden exacto o algunas apps pueden variar ligeramente):
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# Aquí agregaremos nuestra app
]
INSTALLED_APPS es una lista (o a veces una tupla, que es como una lista pero inmutable) que le dice a Django qué aplicaciones están activas y deben ser consideradas parte del proyecto. Las que ves ahí son aplicaciones que Django ya trae por defecto y que son súper útiles:
django.contrib.admin: ¡El panel de administración que ya conocimos!django.contrib.auth: Para manejar usuarios y permisos (autenticación).django.contrib.contenttypes: Un sistema para manejar tipos de contenido.django.contrib.sessions: Para manejar las sesiones de los usuarios (que sigan logueados, por ejemplo).django.contrib.messages: Para mostrar mensajes temporales al usuario (como "¡Proveedor guardado con éxito!").django.contrib.staticfiles: Para manejar archivos estáticos como CSS, JavaScript e imágenes.libreta!Para que nuestro proyecto reconozca nuestra app libreta, simplemente tenemos que agregar su nombre a esta lista INSTALLED_APPS. Es importante ponerlo como una cadena de texto (entre comillas simples o dobles).
Puedes agregarla al final de la lista, o si quieres ser más organizado, puedes agrupar tus propias aplicaciones separadas de las de Django. Por ahora, agregarla al final está perfecto:
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'libreta', # ¡Nuestra nueva app!
]
Hay otra forma un poco más "formal" de registrarla, que es usando la ruta completa a la configuración de la app (que está en el archivo apps.py de nuestra app libreta). Se vería así:
'libreta.apps.LibretaConfig',
Ambas formas suelen funcionar, pero usar el nombre corto ('libreta') es más común y simple para empezar. Django es lo suficientemente inteligente para encontrarla si la carpeta libreta está al mismo nivel que manage.py.
¡No te olvides de la coma! 콤마 (,) al final de cada elemento de la lista es una buena práctica en Python, especialmente para listas que pueden crecer. Facilita agregar nuevos elementos después sin romper nada y ayuda a que los cambios en el control de versiones (como Git) se vean más limpios.
Una vez que hayas agregado 'libreta', (o 'libreta.apps.LibretaConfig',) a la lista INSTALLED_APPS, ¡ASEGÚRATE DE GUARDAR EL ARCHIVO settings.py! (Ctrl + S o Cmd + S).
Este paso es fundamental. Si no registras tu app aquí, Django simplemente no sabrá que existe, no podrá encontrar tus modelos, ni tus plantillas, ni nada de lo que hagas dentro de ella.
En el video de este capítulo, te muestro exactamente dónde y cómo agregar tu app a INSTALLED_APPS.
Después de crear una nueva aplicación en Django (como nuestra app libreta), es un paso crucial decirle a tu proyecto principal que esta nueva app existe y que debe usarla. Esto se hace "registrando" la app en el archivo settings.py de tu proyecto, específicamente añadiendo el nombre de tu app (ej: 'libreta') a la lista llamada INSTALLED_APPS. ¡No olvides guardar el archivo después de hacer el cambio!
¡Perfecto! Ya le dijimos a Django que nuestra app libreta es parte oficial del equipo. Ahora que el proyecto conoce nuestra app y el modelo Proveedor que definimos dentro de ella, el siguiente paso es decirle a Django que cree la tabla correspondiente en la base de datos. ¡A eso vamos en el próximo capítulo con las migraciones!