Saltar al contenido

El administrador de Django no muestra modelos

Bienvenido a nuestra página, aquí vas a hallar la resolución a lo que andabas buscando.

Solución:

¿Ejecutaste syncdb después de cambiar tu archivo models.py?

Vaya al directorio base de su proyecto (donde se encuentra manage.py) y ejecute

python manage.py syncdb

Editar: como ya probó esto, agregue un método str o unicode a su clase de esta manera:

class Resource(models.Model):

    title = models.CharField(max_length=128, blank=True)

    def __str__(self): # __str__ for Python 3, __unicode__ for Python 2
        return self.name

Edición 2: Curiosamente, me encontré exactamente con el mismo problema hoy trabajando en mis propios proyectos. Si el calle el código anterior todavía no funciona para usted, verifique que haya registrado sus modelos en admin.py:

from MyApp.models import MyModel
admin.site.register(MyModel)

Edición 3: finalmente, asegúrese de que su archivo admin.py con el código anterior esté realmente dentro del directorio de la aplicación en cuestión (es decir, el mismo directorio con su models.py que define MyModel).

Asegúrate de llamar:

admin.site.register()

y no

admin.register()

Esta fue la causa para mí.

Vuelva a verificar sus permisos, es decir: si cree que su usuario es un superusuario, ¡simplemente mire para asegurarse! Si su usuario no es un superusuario, busque en “Autenticación y autorización” › “Usuarios” debajo del usuario con el que inició sesión y vea si los “Permisos de usuario:” incluyen los modelos para la aplicación en cuestión.

Después de perseguir esto durante más tiempo del que me gustaría admitir, me di cuenta de que mi usuario no era en realidad un superusuario. Como verá en muchas de las publicaciones relacionadas, es fácil que una aplicación no se muestre en Admin si el usuario no tiene los permisos correctos, como aquí:
ingrese la descripción de la imagen aquí

Como puede ver en esto, el usuario 2 no tiene los permisos requeridos en los modelos de la aplicación “hecha”, solo en los modelos de la aplicación “cronometraje”.

Estaba bastante seguro de que se trataba de un superusuario (pero no lo es). Me imagino que debo haber reducido mis permisos para solucionar un problema que otro usuario había estado viendo o para brindar una experiencia más representativa al usar el sistema.

PD: un obsequio para que este sea el problema es que cualquier base de datos limpia en la que use el python manage.py createsuperuser para comenzar mostrará todas sus aplicaciones/modelos registrados, mientras que una base de datos existente (donde los permisos pueden ser más matizados) mostrará solo algunas de sus aplicaciones/modelos registrados.

Recuerda que tienes la capacidad de añadir una estimación justa si tropezaste tu obstáculo justo a tiempo.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *