FAQ: El administrador

No puedo acceder al sistema. Cuando introduzco un nombre de usuario y contraseña válidos, simplemente me devuelve la página de inicio de sesión nuevamente, sin mensajes de error.

El cookie de inicio de sesión no se está configurando correctamente, porque el dominio del cookie enviado por Django no coincide con el dominio en tu navegador. Intenta establecer la configuración SESSION_COOKIE_DOMAIN para que coincida con tu dominio. Por ejemplo, si vas a «https://www.example.com/admin/» en tu navegador, establece SESSION_COOKIE_DOMAIN = 'www.example.com'.

No puedo acceder al sistema. Cuando ingreso un nombre de usuario y contraseña válidos, me devuelve la página de inicio de sesión nuevamente, con el mensaje de error «Por favor, ingrese un nombre de usuario y contraseña correctos».

Si estás seguro de que tu nombre de usuario y contraseña son correctos, asegúrate de que la cuenta de usuario tenga establecida is_active y is_staff en True. El sitio administrativo solo permite el acceso a los usuarios con ambos campos establecidos en True.

¿Cómo puedo establecer automáticamente el valor de un campo al usuario que editó por última vez el objeto en la interfaz administrativa?

La clase ~django.contrib.admin.ModelAdmin proporciona trampas de personalización que te permiten transformar un objeto al guardar, utilizando detalles del request. Al extraer el usuario actual del request y personalizar la trampa save_model(), puedes actualizar un objeto para reflejar al usuario que lo editó. Consulta la documentación sobre métodos de ModelAdmin <model-admin-methods> para obtener un ejemplo.

¿Cómo puedo limitar el acceso al panel de administración para que solo los usuarios que crearon un objeto puedan editarlo?

La clase ModelAdmin también proporciona trampas de personalización que te permiten controlar la visibilidad y la edición de objetos en el panel de administración. Utilizando el mismo truco de extraer al usuario de la solicitud, se pueden utilizar las funciones get_queryset() y has_change_permission() para controlar la visibilidad y la edición de objetos en el panel de administración.

Mi sitio administrativo CSS y imágenes se mostraban correctamente utilizando el servidor de desarrollo, pero no se están mostrando cuando se utiliza mod_wsgi.

Ve la sección sobre servir los archivos de administración en la documentación «Cómo usar Django con mod_wsgi».

Mi «list_filter» contiene un ManyToManyField, pero el filtro no se muestra.

Django no se molestará en mostrar el filtro para un campo ManyToManyField si no hay objetos relacionados.

Ejemplo: si tu list_filter incluye sitios, y no hay sitios en tu base de datos, no mostrará un filtro «Sitio». En ese caso, filtrar por sitio sería inútil.

Algunos objetos no aparecen en la interfaz administrativa.

Los conteos de filas inconsistentes pueden ser causados por valores faltantes de claves foráneas o una clave foránea con un campo incorrectamente configurado a null=False. Si tienes un registro con una ForeignKey apuntando a un objeto inexistente y esa clave foránea está incluida en list_display, el registro no se mostrará en la lista de cambios del panel administrativo porque el modelo Django declara una restricción de integridad que no está implementada a nivel de base de datos.

¿Cómo puedo personalizar la funcionalidad de la interfaz administrativa?

Tienes varias opciones. Si deseas aprovecharse de una forma de agregar/cambiar que Django genera automáticamente, puedes unir módulos de JavaScript arbitrarios a la página mediante el parámetro js de la clase django.contrib.admin.ModelAdminDefiniciones de activos ModelAdmin. Ese parámetro es una lista de URLs, como cadenas de texto, que apuntan a módulos de JavaScript que se incluirán dentro de la forma administrativa mediante un <script>.

Si deseas más flexibilidad de la que es posible mediante ajustes a las formas generadas automáticamente, no dudes en escribir vistas personalizadas para el panel de administración. El panel de administración se alimenta de Django mismo y puedes escribir vistas personalizadas que interactúen con el sistema de autenticación, verifiquen permisos y hagan lo que necesiten hacer.

Si deseas personalizar la apariencia de la interfaz administrativa, lee la siguiente pregunta.

La página administrativa generada dinámicamente es fea. ¿Cómo puedo cambiarla?

Nos gusta, pero si no estás de acuerdo, puedes modificar la presentación del sitio administrativo editando el archivo CSS y/o los archivos de imágenes asociados. El sitio está construido con HTML semántico y muchos hooks en CSS, por lo que cualquier cambio que desees hacer debería ser posible editando el archivo CSS.

¿Qué navegadores se admiten para usar la interfaz de administración?

El administrador proporciona una experiencia completamente funcional a las versiones recientes de navegadores modernos y estándares web compatibles. En escritorio esto significa Chrome, Edge, Firefox, Opera, Safari y otros.

En dispositivos móviles y tableta, la interfaz de administración proporciona una experiencia adaptable para navegadores que cumplen con los estándares web. Esto incluye los principales navegadores tanto en Android como en iOS.

Según la compatibilidad con características, puede haber diferencias estilísticas menores entre navegadores. Estas se consideran variaciones aceptables en la renderización.

¿Qué tecnologías asistentes se admiten para usar la interfaz de administración?

El administrador está diseñado para ser compatible con una amplia gama de tecnologías asistentes, pero actualmente hay muchos bloqueadores. El objetivo de soporte es todas las últimas versiones de las principales tecnologías asistentes, incluyendo Dragon, JAWS, NVDA, Orca, TalkBack, Voice Control, VoiceOver iOS, VoiceOver macOS, Temas de contraste de Windows, ZoomText y amplificadores de pantalla.