Ir al contenido principal

Guía Estándar para Crear un Proyecto Wagtail

Guía Estándar para Crear un Proyecto Wagtail

Wagtail es un CMS moderno basado en Django que ofrece flexibilidad y un excelente panel de administración. Aquí te muestro cómo inicializar un proyecto Wagtail con un estándar profesional.

1. Configuración Inicial

Primero, creamos el entorno virtual e instalamos Wagtail:

# Navegar al directorio donde quieres crear el proyecto (puede ser cualquiera)
cd /ruta/a/tu/proyecto

# Crear entorno virtual
python3 -m venv venv

# Activar el entorno virtual
# En Linux/Mac:
source venv/bin/activate
# En Windows:
.\venv\Scripts\activate

# Instalar Wagtail
pip install wagtail

2. Crear el Proyecto Wagtail

Iniciamos un nuevo proyecto Wagtail:

# Crear proyecto (config es el nombre de la configuración principal)
wagtail start config .

# Instalar dependencias
pip install -r requirements.txt

# Migrar la base de datos inicial
python manage.py migrate

# Crear superusuario (sigue las instrucciones)
python manage.py createsuperuser

3. Configuración de la Aplicación Pages

Vamos a crear una aplicación personalizada para nuestras páginas:

# Crear la aplicación pages
python manage.py startapp pages

Edita el archivo config/settings/base.py para agregar la nueva aplicación:

# settings/base.py

INSTALLED_APPS = [
    'pages',  # Agregar esta línea
    'search',
    'wagtail.contrib.forms',
    # ... resto de aplicaciones ...
]

4. Crear Modelo de Página Principal

En pages/models.py, define tu modelo de página principal:

# pages/models.py
from wagtail.models import Page
from wagtail.fields import RichTextField
from wagtail.admin.panels import FieldPanel

class HomePage(Page):
    body = RichTextField(blank=True)

    content_panels = Page.content_panels + [
        FieldPanel('body'),
    ]

Aplica las migraciones:

# Generar y aplicar migraciones
python manage.py makemigrations
python manage.py migrate

5. Eliminar la Aplicación Home por Defecto

Para mantener nuestro proyecto limpio, eliminamos la aplicación home que viene por defecto:

# Eliminar la carpeta home
rm -rf home

# También elimínala de INSTALLED_APPS en settings/base.py
# Quita la línea 'home',

6. Estructura Actualizada del Proyecto

Tu proyecto ahora tendrá esta estructura:

.
├── config/               # Configuración principal del proyecto
│   ├── __init__.py
│   ├── settings/
│   ├── urls.py
│   └── wsgi.py
├── pages/                # Tu aplicación personalizada
│   ├── migrations/
│   ├── models.py
│   ├── templates/
│   └── ...
├── static/
├── templates/
├── requirements.txt
└── manage.py

7. Configurar la Página Principal

Para usar tu nuevo modelo como página principal:

# 1. Ve al admin de Wagtail (http://127.0.0.1:8000/admin/)
# 2. Elimina la página Home existente (si existe)
# 3. Crea una nueva página del tipo HomePage
# 4. En Configuración del sitio, establece esta página como raíz

8. Crear Template para HomePage

Crea un template específico para tu modelo:

# Crear la estructura de directorios
mkdir -p pages/templates/pages

# Crear el archivo del template
touch pages/templates/pages/home_page.html

Contenido básico de home_page.html:

{% extends "base.html" %}

{% block content %}
<h1>{{ page.title }}</h1>
{{ page.body|richtext }}
{% endblock %}

9. Ejecutar el Servidor de Desarrollo

Para ver tu sitio en acción:

# Ejecutar el servidor de desarrollo
python manage.py runserver

# Ahora puedes acceder a:
# - Frontend: http://127.0.0.1:8000/
# - Admin: http://127.0.0.1:8000/admin/

Comentarios