Saltar a contenido

Panel de administración

Panel de Administración de Django

1. Introducción al panel de administración

El panel de administración de Django es una interfaz gráfica que permite gestionar de manera eficiente el contenido de una base de datos de un proyecto Django. Proporciona herramientas para crear, editar, eliminar y visualizar los registros de las tablas asociadas a los modelos de Django, todo sin necesidad de escribir código SQL o crear formularios manuales.

2. Acceso al Panel de Administración

Podemos utilizar el proyecto ecommerce y la aplicación stock creada en el punto 6.4 para ilustrar cómo acceder al panel de administración.

Accedemos a la ruta /admin de nuestro proyecto Django. Por ejemplo, si estamos ejecutando el servidor de desarrollo local, la URL sería:

http://localhost:8000/admin

Si todo está correctamente configurado, deberíamos ver la pantalla de inicio de sesión del panel de administración.

Pantalla de Inicio de Sesión

Pantalla de Inicio de Sesión

superuser

El superusuario es un usuario con todos los permisos en el sistema. Es necesario para acceder al panel de administración. Para ello primero debemos crear un superusuario, ya que no viene ninguno por defecto.

  • Creación del superusuario: Django requiere un superusuario para acceder al panel de administración. Puedes crear uno ejecutando el siguiente comando:

    python manage.py createsuperuser
    

    Luego, debes ingresar un nombre de usuario, correo electrónico y una contraseña para este superusuario. El password debe cumplir con ciertos requisitos de seguridad (mínimo 8 caracteres, no ser demasiado común, etc.).

    Creación de Superusuario

    Creación de Superusuario

    Reestablecer contraseña

    Si olvidas la contraseña del superusuario, puedes restablecerla ejecutando:

    python manage.py changepassword <nombre_de_usuario>
    

    Para nuestro ejemplo he creado usuario admin con password superuser.

  • Acceso al panel de administración: Una vez creado el superusuario, puedes acceder al panel de administración en la URL:

    http://127.0.0.1:8000/admin/` 
    

    en tu servidor de desarrollo local.

Una vez dentro, verás una interfaz que te permite gestionar los modelos registrados en el panel de administración.

Panel de Administración

Panel de Administración

3. Usuarios y Grupos

Usuarios y Grupos

  • usuarios: Son las cuentas individuales que pueden acceder al sistema. Cada usuario puede tener diferentes permisos y roles.
  • grupos: Son conjuntos de usuarios que comparten los mismos permisos. Facilitan la gestión de permisos para múltiples usuarios.

Normalmente, los usuarios y grupos se gestionan desde el panel de administración. La manera de proceder es sencilla, si tenemos pocos usuarios podemos asignarles permisos individualmente, pero si tenemos muchos usuarios con los mismos permisos es más eficiente crear un grupo y asignar los permisos al grupo, luego asignamos los usuarios al grupo.

4. Permisos

Aquí podemos ver una tabla con algunos de los permisos más comunes en Django. En la documentación de Django on el mismo panel de administración puedes encontrar una lista completa de permisos.

Django permite asignar permisos específicos a usuarios o grupos, como "puede agregar", "puede editar" o "puede eliminar" objetos de un modelo.

Permiso Descripción
add_model Permite agregar objetos a un modelo.
change_model Permite modificar objetos existentes en un modelo.
delete_model Permite eliminar objetos de un modelo.
view_model Permite visualizar objetos en el panel de administración.

5. Registrar Modelos en el Panel de Administración

Para que un modelo sea accesible desde el panel de administración, es necesario registrarlo. Esto se hace en el archivo admin.py de la aplicación correspondiente. En el caso del proyecto ecommerce y la aplicación stock, registra los modelos como sigue:

  1. Registra un modelo: En el archivo admin.py de la app stock, agrega el siguiente código:
from django.contrib import admin
from .models import Product

admin.site.register(Product)
  1. Manejo de modelos desde el panel de administración: Después de registrar el modelo, podrás crear, editar y eliminar productos directamente desde el panel de administración de Django.

!!! note "Ejemplo de manejo de un Modelo: Product" Manejo de Modelos

  1. Customizar el panel de administración: Django permite personalizar el panel de administración para hacer que los modelos sean más fáciles de manejar. Ejemplo de personalización para mostrar solo ciertos campos:
class ProductAdmin(admin.ModelAdmin):
    list_display = ('name', 'price', 'stock')

admin.site.register(Product, ProductAdmin)

6. Práctica

  1. Crear un grupo y asignarle permisos: Crea un grupo llamado "Edición de Productos" y asigna los permisos add_product, change_product y delete_product a este grupo.

  2. Crear un usuario y asignarle el grupo: Luego, crea un usuario llamado "Ana" y asígnale el grupo "Edición de Productos".

  3. Acceder al panel de administración con el usuario creado: Ingresa al panel de administración con el usuario "Ana" y verifica que solo tenga acceso a las funcionalidades permitidas por los permisos asignados.