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),
# ...
]

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
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.