2010-09-15 4 views
63

Creé una aplicación pequeña hace un tiempo. Creé admin.py y usé admin.site.register(MenuEntry) para agregar la clase a la consola de administración. Mostró los artículos de esa clase muy bien. Luego comencé a trabajar en otra aplicación y creé todo como antes. Pero ahora dice: No tienes permiso para editar nada. Comparé archivos de eso y de estas aplicaciones y se ven bastante similares, así que no puedo encontrar la diferencia y no puedo darme cuenta de qué hacer ahora para que funcione.Django. No tienes permiso para editar nada

+0

¿Puedes poner un diff de los archivos? – wheaties

+3

He resuelto el problema. Revisé los archivos nuevamente y encontré la diferencia. Olvidé agregar admin.autodiscover(). Ahora está ahí y todo funciona bien. ¡Gracias! –

Respuesta

134

Revisé los archivos una vez más y encontré la diferencia. Olvidé agregar admin.autodiscover() en urls.py del proyecto. Gracias.

+8

Gracias por el consejo. ¡Agregar esto cuando la degradación de Django 1.7 a 1.6 es importante! – jnns

2

Tuve otro caso donde sucedió esto. Tenía una aplicación llamada "transcripción", con dos modelos: Proyecto y Grabación. Después de obtenerlo en su mayoría desarrollado, decidí cambiar el nombre de la aplicación "grabaciones". La aplicación de administración funcionó bien como administrador, pero cualquier usuario que no sea administrador obtuvo este mensaje de error. Eventualmente encontré (en mi sqlite db) la tabla django_content_type. Tenía estos registros:

 
id name  app_label  model 
------------------------------------- 
8 project transcription project 
9 recording transcription recording 
10 project recording  project 
11 recording recordings recording 

algún punto del camino que había logrado sumar dos (casi - no sé por qué "grabación" en la ficha 10) registros correctos, dejando intactos los ahora registros incorrectos. El usuario administrador funcionó bien (me pregunto por qué), pero cualquier otro grupo obtuvo el error. Cuando yo miré a auth_group_permissions, vi que solo se estaban asignando los registros 8 y 9 y, por supuesto, ya no era una aplicación llamada "transcripción". De ahí el error.

Eliminé los registros 10 y 11 y cambié los app_labels de 8 y 9 a "grabaciones" y me alegro de Mudville.

1

Actualiza tu Django a 1.7 o más, Este problema se resolverá automáticamente.

Actualización de Django:

pip install -U django 
-2

yo simplemente eliminado todas las versiones instaladas actualmente de Django. A continuación, instale nuevamente la última versión de Django y funciona

0

Recibí el mismo error y tuve que refactorizar el nombre app porque entraba en conflicto con uno de los módulos que se utilizaban. Mi nombre app's era admin y también estaba usando admin de Django.

Compruebe el enlace - Change app's name, sobre cómo hacerlo.