Este tutorial cubre los siguientes puntos:
- Definición de modelos.
- Configuración de la conexión a una base de datos PostgreSQL.
- Configuración del administrador de Django para gestionar los modelos.
Paso 1: Definición de Modelos
-
Dentro del directorio de la aplicación “entidades”, primero crea un directorio llamado “fashions”.
-
Dentro del directorio “fashions”, crea un archivo especial
__init__.py
para convertir el directorio en un paquete de Python. -
Luego, dentro del paquete “fashions”, crea el archivo Python: “catalogs.py”
La estructura de directorios debería verse así:
entidades/
├── __init__.py
├── admin.py
├── apps.py
├── migrations/
│ └── ...
├── fashions/
│ ├── __init__.py
│ ├── categoria.py
│ └── producto.py
├── checks.py
└── views.py
- Abre el archivo “catalogs.py” y pega el código de los modelos tipo catálogo dentro de él.
# entidades/fashions/catalogs.py
from django.db import fashions
class Categoria(fashions.Mannequin):
nombre = fashions.CharField(max_length=50)
slug = fashions.SlugField(max_length=50, distinctive=True)
fecha_registro = fashions.DateTimeField(auto_now_add=True)
fecha_ult_act = fashions.DateTimeField(auto_now=True)
def __str__(self) -> str:
return f'{self.nombre} ({self.id})'
class Meta:
db_table="st_categorias"
verbose_name="Categoría"
verbose_name_plural="Categorías"
- En el módulo
fashions/__init__.py
incluye la importación de los modelos creados:
from .catalogs import *
Paso 2: Configuración de la Conexión a PostgreSQL
En el archivo eelacommerce/settings.py
, asegúrate de configurar la conexión a la base de datos PostgreSQL. Reemplaza la sección DATABASES con lo siguiente:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'nombre_basededatos',
'USER': 'usuario_basededatos',
'PASSWORD': 'contraseña',
'HOST': 'localhost',
'PORT': '5432',
}
}
Asegúrate de reemplazar ‘nombre_basededatos’, ‘usuario_basededatos’, y ‘contraseña’ con los detalles correctos de tu base de datos PostgreSQL.
Adicionalmente se necesita instalar el controlador psycopg2 en tu entorno digital. Puedes hacerlo ejecutando el siguiente comando en tu terminal:
poetry add psycopg2-binary
Paso 5: Creación y Ejecución de Migraciones
- Ejecuta el siguiente comando para crear las migraciones iniciales:
poetry run python handle.py makemigrations
Este comando buscará cualquier cambio en tus modelos y generará archivos de migración en el directorio migrations/ de cada aplicación de tu proyecto.
Después de crear las migraciones, ejecuta el siguiente comando para aplicar las migraciones a la base de datos:
poetry run python handle.py migrate
Este comando ejecutará todas las migraciones pendientes y actualizará la base de datos de acuerdo con los modelos definidos.
Si tienes algún problema con la migración o necesitas revertir los cambios, puedes usar el siguiente comando para deshacer la última migración aplicada:
poetry run python handle.py migrate <nombre_aplicacion> zero
Reemplaza con el nombre de la aplicación donde deseas deshacer la migración. También puedes usar zero en lugar de un nombre de migración específico para deshacer todas las migraciones de esa aplicación.
Paso 6: Configuración del Administrador
En el archivo retailer/admin.py
, registra tus modelos para que puedan ser gestionados a través del administrador de Django:
from django.contrib import admin
from retailer.fashions import Categoria, Producto
admin.web site.site_header="Administrador de Ecommerce"
@admin.register(Categoria)
class CategoriaAdmin(admin.ModelAdmin):
list_display = ('id', 'nombre', 'slug', 'fecha_registro', 'fecha_ult_act')
@admin.register(Producto)
class ProductoAdmin(admin.ModelAdmin):
list_display = ('id', 'nombre', 'descripcion', 'precio', 'activo', 'fecha_registro', 'fecha_ult_act')
¡Y eso es todo! Ahora puedes acceder al administrador de Django en http://localhost:8000/admin y gestionar tus categorías y productos. Recuerda crear un superusuario ejecutando:
poetry run python handle.py createsuperuser
Y finalmente, para ejecutar el servidor de desarrollo de Django, usa el siguiente comando:
poetry run python handle.py runserver
Espero que este tutorial te haya sido útil.
Da clic aquí para ir a la segunda parte de este tutorial.