Django. You don't have permission to edit anything

Question:

I created a little app a while ago. I created admin.py and used admin.site.register(MenuEntry) to add the class to admin console. It showed the items of that class just fine.
Then I began working on another app and created everything as before. But now it says:
You don’t have permission to edit anything.
I compared files from that and from this apps and they look quite similar, so I just can’t find the difference and I can’t realize what to do now to make it work.

Asked By: Sergei Basharov

||

Answers:

I checked files one more time and found the difference. I forgot to add admin.autodiscover() in urls.py of the project. Thanks.

Answered By: Sergei Basharov

I had another case where this happened. I had an app called “transcription”, with two models: Project and Recording. After getting it mostly developed I decided to rename the app “recordings”. The admin app worked fine as the admin but any non-admin user got this error message. Eventually I found (in my sqlite db) the table django_content_type. It had these records:

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

Somewhere along the way I had managed to add two (almost – don’t know why “recording” in record 10) correct records while leaving the now
incorrect records intact. The admin user worked just fine (I wonder why), but any other group got the error. When I
looked at auth_group_permissions I saw that only records 8 and 9 were being assigned and of course there
was no longer an app called “transcription”. Hence the error.

I deleted records 10 and 11 and changed the app_labels of 8 and 9 to “recordings” and there’s joy in
Mudville.

Answered By: Joe Gillon

Upgrade your Django to 1.7 or more, This problem will be automatically solved.

Upgrading Django:

pip install -U django
Answered By: Naresh

I just simply Removed all currently installed versions of Django. Then freshly install the latest version of Django and it works

Answered By: Sachin Patel

I was receiving the same error and had to refactor the appname as it conflicted with one of the modules being used.
My app's name was admin and I was also using Django’s admin.

Check the link – Change app’s name, on how to do it.

Answered By: Vaulstein
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.