Configuración del panel de administración Django

Básico
Django
Django
Actualizado: 18/04/2026

Activar el panel de administración

El panel de administración de Django viene preconfigurado. Solo requiere que django.contrib.admin esté en INSTALLED_APPS y las URLs del admin en urls.py:

# settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    # ...
]

# urls.py del proyecto
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
    # ...
]

Diagrama conceptual de Configuración del panel de administración Django

Crear el superusuario

python manage.py createsuperuser
# Introduce: username, email y password

Accede al admin en http://localhost:8000/admin/ con las credenciales del superusuario.

Registrar modelos

Hay dos formas de registrar modelos en el admin:

# catalogo/admin.py

# Forma 1: Decorador @admin.register (recomendada)
from django.contrib import admin
from .models import Producto, Categoria

@admin.register(Producto)
class ProductoAdmin(admin.ModelAdmin):
    pass

@admin.register(Categoria)
class CategoriaAdmin(admin.ModelAdmin):
    pass

# Forma 2: admin.site.register (para casos simples)
admin.site.register(Producto)
admin.site.register(Categoria)

Personalizar el AdminSite

admin.site es la instancia global del panel de administración. Sus atributos controlan el título y el branding:

# En urls.py o en un AppConfig.ready()
admin.site.site_header = 'CertiTienda — Administración'
admin.site.site_title = 'CertiTienda Admin'
admin.site.index_title = 'Panel de gestión'
admin.site.site_url = '/'  # Enlace "Ver sitio" en el admin

O subclasificando AdminSite:

# admin.py
from django.contrib.admin import AdminSite

class MiAdminSite(AdminSite):
    site_header = 'CertiTienda — Administración'
    site_title = 'CertiTienda Admin'
    index_title = 'Panel de gestión'

    def has_permission(self, request):
        """Solo usuarios con is_staff pueden acceder."""
        return request.user.is_active and request.user.is_staff

mi_admin = MiAdminSite(name='mi_admin')

# Registrar modelos en el admin personalizado
mi_admin.register(Producto, ProductoAdmin)
# urls.py
from .admin import mi_admin

urlpatterns = [
    path('gestion/', mi_admin.urls),
]
Alan Sastre - Autor del tutorial

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Django es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.

Más tutoriales de Django

Explora más contenido relacionado con Django y continúa aprendiendo con nuestros tutoriales gratuitos.

Aprendizajes de esta lección

Activar y acceder al panel de administración de Django. Registrar modelos con @admin.register y admin.site.register. Crear un superusuario con createsuperuser. Personalizar el título, cabecera y pie del admin con AdminSite. Organizar las URL del admin y crear múltiples sitios de administración.