Saltar a contenido

🛠 Unidad ISS-02 · Apps client, product y sale — capa 🛠 CONSTRUIR

🧠 Comprender este bloque → · ✅ GATE de la unidad

Capa Página Para qué
🧠 Aprender Guía de estudio comprender, explicar y relacionar
🛠 Construir esta página ejecutar, programar y verificar
✅ GATE Condiciones de cierre condición para pasar al bloque siguiente

Esta es la guía ejecutable. El cuerpo de abajo es el ISS técnico verbatim: comandos, rutas, versiones, verificaciones y criterios, sin simplificar.


ISS-02 — Apps client, product y sale

Objetivo

Crear las tres apps de negocio con la CLI y registrarlas dentro del paquete apps.

Requisitos

  • ISS-01 superado.
  • Todavía no se escriben modelos. El Custom User del ISS-03 debe existir antes de migrar.

Construcción

mkdir -p apps/client apps/product apps/sale
python manage.py startapp client apps/client
python manage.py startapp product apps/product
python manage.py startapp sale apps/sale

startapp exige que el directorio destino ya exista. No se copian models.py, admin.py ni views.py a mano: la CLI los deja. urls.py no lo crea; aparecerá cuando haya endpoints.

apps/__init__.py es nuevo y va vacío, para que apps sea un paquete:

mkdir -p apps
cat > apps/__init__.py <<'EOF'
EOF

Cada apps.py ya existe. Se parchea el name. El de client:

ARCHIVO: apps/client/apps.py

UBICAR:
    name = "client"

REEMPLAZAR POR:
    name = "apps.client"
    label = "client"

El mismo parche en apps/product/apps.py (name = "apps.product", label = "product") y en apps/sale/apps.py (name = "apps.sale", label = "sale"). La clase se llama ClientConfig, ProductConfig o SaleConfig según la app. No se cambia ese nombre.

config/settings/__init__.py ya existe. Se agregan las tres apps al final de la lista, todavía sin security:

ARCHIVO: config/settings/__init__.py

DEBAJO DE:
    "django.contrib.staticfiles",

AGREGAR:
    "apps.client.apps.ClientConfig",
    "apps.product.apps.ProductConfig",
    "apps.sale.apps.SaleConfig",

Explicación

Django supone que la app está en la raíz del proyecto. Al vivir en apps/, AppConfig.name debe ser apps.client. El label se deja en client para que las migraciones no arrastren el nombre del paquete. Cada app conserva un solo nombre, igual al dominio: client, product y sale.

apps/
├── client/     compradores
├── product/    catálogo e inventario
└── sale/       transacciones

Criterios de aceptación

  • AC-02-01: las tres apps fueron creadas con startapp.
  • AC-02-02: python manage.py check no reporta apps mal registradas.
  • AC-02-03: en este ISS todavía no hay modelos de negocio.

Verificación

python manage.py check

Evidencias

  • EVI-02-01: System check identified no issues en el entorno final.

GATE

AC Verificación Evidencia Resultado
AC-02-01 directorios de las apps árbol del repositorio PASS
AC-02-02 check EVI-02-01 PASS
AC-02-03 este capítulo no escribe modelos revisión del ISS PASS

✅ GATE de la unidad ISS-02 — este bloque no añade ningún criterio nuevo.

Las condiciones de cierre son las de esta misma página:

Con el GATE en verde queda habilitado el bloque siguiente de la ruta.

Navegación de la ruta: ← ISS-02 · 🧠 Aprender · ↑ Ruta Django · → ISS-03 · 🧠 Aprender