Herramienta de administración de Django Admin
Django proporciona una herramienta de administración basada en web.
La herramienta de administración automática de Django es parte de django.contrib. Puedes verla en INSTALLED_APPS en el settings.py del proyecto:
/HelloWorld/HelloWorld/settings.py: código del archivo:
django.contrib es un gran conjunto de funcionalidades que forma parte del código base de Django.
Activar la herramienta de administración
Normalmente, al generar el proyecto, se configura automáticamente en urls.py; solo tenemos que eliminar los comentarios.
Los elementos de configuración son los siguientes:
/HelloWorld/HelloWorld/urls.py: código del archivo:
Cuando todo esto esté configurado, la herramienta de administración de Django podrá ejecutarse.
Usar la herramienta de administración
Inicia el servidor de desarrollo y luego accede a http://127.0.0.1:8000/admin/ en el navegador; obtendrás la siguiente interfaz:
Puedes, mediante el comandopython manage.py createsuperusercrear un superusuario, como se muestra a continuación:
# python manage.py createsuperuser Username (leave blank to use 'root'): admin Email address: [email protected] Password: Password (again): Superuser created successfully. [root@solar HelloWorld]#
Luego ingresa el nombre de usuario y la contraseña para iniciar sesión; la interfaz es la siguiente:
Para que la interfaz de admin gestione un modelo de datos, primero debemos registrar ese modelo de datos en admin. Por ejemplo, antes ya creamos el modelo Test en TestModel. Modifica TestModel/admin.py:
HelloWorld/TestModel/admin.py: código del archivo:
Después de actualizar, podrás ver la tabla de datos Testmodel:
Modelos complejos
La página de administración es potente y totalmente capaz de manejar modelos de datos más complejos.
Primero agrega un modelo de datos más complejo en TestModel/models.py:
HelloWorld/TestModel/models.py: código del archivo:
Aquí hay dos tablas. Tag usa Contact como clave externa. Un Contact puede corresponder a varios Tags.
También podemos ver muchos tipos de atributos que no habíamos visto antes, como IntegerField, que se usa para almacenar enteros.
Registra varios modelos en TestModel/admin.py y muéstralos:
HelloWorld/TestModel/admin.py: código del archivo:
Actualiza la página de administración; el resultado se muestra a continuación:
Con las herramientas de administración anteriores podemos realizar operaciones con modelos complejos.
Si aún no has creado la estructura de las tablas, puedes crearla con el siguiente comando:
$ python manage.py makemigrations TestModel # 让 Django 知道我们在我们的模型有一些变更 $ python manage.py migrate TestModel # 创建表结构
Formularios personalizados
Podemos personalizar la página de administración para reemplazar la página predeterminada. Por ejemplo, la página "add" de arriba. Queremos mostrar solo las partes name y email. Modifica TestModel/admin.py:
HelloWorld/TestModel/admin.py: código del archivo:
El código anterior define una clase ContactAdmin para especificar el formato de visualización de la página de administración.
El atributo fields dentro define los campos que se van a mostrar.
Dado que esta clase corresponde al modelo de datos Contact, al registrar debemos registrarlos juntos. El efecto de visualización es el siguiente:
También podemos dividir los campos de entrada en secciones, y cada sección puede definir su propio formato. Modifica TestModel/admin.py a:
HelloWorld/TestModel/admin.py: código del archivo:
Las secciones anteriores se dividen en dos partes: Main y Advance. classes indica el formato CSS de la sección en la que se encuentra. Aquí se oculta la parte Advance:
Junto a la parte Advance hay un botón Show para expandirla; después de expandirla, puedes hacer clic en Hide para ocultarla, como se muestra en la siguiente figura:
Visualización en línea (Inline)
Arriba, Contact es la clave externa de Tag, por lo que existe una relación de referencia externa.
Sin embargo, en la visualización predeterminada de la página, ambos se muestran por separado, sin reflejar la relación de subordinación entre ellos. Podemos usar la visualización en línea para que Tag se muestre adjunto a la página de edición de Contact.
Modifica TestModel/admin.py:
HelloWorld/TestModel/admin.py: código del archivo:
El efecto de visualización es el siguiente:
Visualización de la página de lista
Después de ingresar varios registros en Contact, la página de lista de Contact se ve así:
También podemos personalizar la visualización de esta página, por ejemplo, mostrar más columnas en la lista; solo necesitamos agregar el atributo list_display en ContactAdmin:
HelloWorld/TestModel/admin.py: código del archivo:
Actualiza la página; el efecto de visualización es el siguiente:
La función de búsqueda es muy útil al gestionar una gran cantidad de registros; podemos usar search_fields para agregar una barra de búsqueda a esta página de lista:
HelloWorld/TestModel/admin.py: código del archivo:
En este ejemplo buscamos los registros cuyo name es ejemplo; el resultado se muestra a continuación:
La herramienta de administración de Django Admin tiene muchas más funciones prácticas; los interesados pueden profundizar en ellas.
Otras extensiones