developer tip

장고.

copycodes 2020. 11. 20. 09:06
반응형

장고. 편집 할 권한이 없습니다.


얼마 전에 작은 앱을 만들었습니다. 내가 만든 admin.py 및 사용 admin.site.register(MenuEntry)관리 콘솔에 클래스를 추가 할 수 있습니다. 그 클래스의 아이템을 잘 보여주었습니다. 그런 다음 다른 앱 작업을 시작했고 이전과 마찬가지로 모든 것을 만들었습니다. 하지만 이제는 다음과 같이 표시됩니다. 편집 할 권한이 없습니다. 그 파일과이 앱의 파일을 비교했는데 상당히 비슷해 보였기 때문에 차이점을 찾을 수없고 작동하도록 지금 무엇을해야하는지 알 수 없습니다.


파일을 한 번 더 확인하고 차이점을 발견했습니다. 프로젝트 에 추가 admin.autodiscover()하는 것을 잊었습니다 urls.py. 감사.


이런 일이 발생한 또 다른 경우가있었습니다. 프로젝트와 녹음이라는 두 가지 모델이있는 "전사"라는 앱이 있습니다. 대부분 개발 된 후 앱 이름을 "녹음"으로 변경하기로 결정했습니다. 관리자 앱은 관리자로 제대로 작동했지만 관리자가 아닌 사용자는이 오류 메시지를 받았습니다. 결국 내 sqlite db에서 django_content_type 테이블을 찾았습니다. 다음과 같은 기록이 있습니다.

id 이름 app_label 모델
-------------------------------------
8 프로젝트 전사 프로젝트
9 녹음 녹음 녹음
10 프로젝트 녹음 프로젝트
11 녹음 녹음 녹음

어딘가에 2 개를 추가 할 수있었습니다 (거의-레코드 10에 "레코딩"하는 이유를 모르겠 음). 이제 잘못된 레코드는 그대로두고 올바른 레코드를 기록했습니다. 관리자 사용자는 잘 작동했지만 (이유가 궁금합니다) 다른 그룹에 오류가 발생했습니다. auth_group_permissions를 살펴보면 레코드 8과 9 만 할당되고 물론 "transcription"이라는 앱이 더 이상 없다는 것을 알았습니다. 따라서 오류입니다.

10 번과 11 번 레코드를 삭제하고 8 번과 9 번의 app_labels를 "recordings"로 변경했는데 Mudville에 즐거움이 있습니다.


Django를 1.7 이상으로 업그레이드하면이 문제는 자동으로 해결됩니다.

Django 업그레이드 :

pip install -U django

동일한 오류가 발생하고 app사용중인 모듈 중 하나와 충돌 하므로 이름 을 리팩터링해야 했습니다. app's이름은 admin장고의 admin.

링크 확인- 앱 이름 변경 , 방법에 대해.


현재 설치된 모든 Django 버전을 간단히 제거했습니다. 그런 다음 최신 버전의 Django를 새로 설치하면 작동합니다.

참고 URL : https://stackoverflow.com/questions/3718077/django-you-dont-have-permission-to-edit-anything

반응형