J'ai créé une petite application il y a quelque temps. J'ai créé admin.py et utilisé admin.site.register(MenuEntry)
pour ajouter la classe à la console d'administration. Cela montrait très bien les articles de cette classe. Ensuite, j'ai commencé à travailler sur une autre application et j'ai tout créé comme avant. Mais maintenant, il dit: Vous n'avez pas la permission de modifier quoi que ce soit. J'ai comparé les fichiers de cela et de ces applications et ils ont l'air assez similaires, donc je ne trouve pas la différence et je peux ' Je ne sais pas quoi faire maintenant pour le faire fonctionner.
J'ai vérifié les fichiers une fois de plus et j'ai trouvé la différence. J'ai oublié d'ajouter admin.autodiscover()
dans urls.py
du projet. Merci.
J'ai eu un autre cas où cela s'est produit. J'avais une application appelée "transcription", avec deux modèles: Project et Recording. Après l'avoir principalement développé, j'ai décidé de renommer l'application "enregistrements". L'application d'administration a bien fonctionné en tant qu'administrateur, mais tout utilisateur non administrateur a reçu ce message d'erreur. Finalement, j'ai trouvé (dans ma base de données sqlite) la table Django_content_type. Il avait ces enregistrements:
id nom modèle app_label ------------------------------------ - 8 projet de transcription projet 9 enregistrement de transcription enregistrement 10 projet d'enregistrement projet 11 enregistrements d'enregistrement enregistrement
Quelque part en cours de route, j'avais réussi à ajouter deux (presque - je ne sais pas pourquoi "enregistrer" dans l'enregistrement 10) des enregistrements corrects tout en laissant intacts les enregistrements désormais incorrects. L'utilisateur administrateur a très bien fonctionné (je me demande pourquoi), mais tout autre groupe a eu l'erreur. Quand j'ai regardé auth_group_permissions, j'ai vu que seuls les enregistrements 8 et 9 étaient assignés et bien sûr il n'y avait plus d'application appelée "transcription". D'où l'erreur.
J'ai supprimé les enregistrements 10 et 11 et changé les app_labels de 8 et 9 en "enregistrements" et il y a de la joie à Mudville.
Mettez à niveau votre Django vers 1.7 ou plus, ce problème sera automatiquement résolu.
Mise à niveau de Django:
pip install -U Django
Je recevais la même erreur et j'ai dû refactoriser le app
name car il entrait en conflit avec l'un des modules utilisés. Ma app's
le nom était admin
et j'utilisais également admin
de Django.
Vérifiez le lien - Changer le nom de l'application , sur la façon de le faire.