Django ImportError:无法导入名称 get_permission_codename

Posted

技术标签:

【中文标题】Django ImportError:无法导入名称 get_permission_codename【英文标题】:Django ImportError: cannot import name get_permission_codename 【发布时间】:2015-04-30 14:31:10 【问题描述】:

我正在用 django 教程做探戈。我已经到了第 5 章关于使用模型的内容,并且我正在设置管理网站。我收到这个奇怪的错误:

ImportError: 无法导入名称 get_permission_codename

当我删除时,这似乎消失了

admin.autodiscover()

来自我的项目/urls.py。但我担心我以后会需要这个。

这是我运行开发服务器时得到的 Traceback:

环境:

请求方法:GET 请求地址:http://127.0.0.1:8000/admin/

Django 版本:1.5.4 Python 版本:2.7.3 已安装的应用程序: ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.admin', 'rango') 已安装的中间件: ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware')

追溯:文件 “/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py” 在 get_response 103. resolver_match = resolver.resolve(request.path_info) 文件 “/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py” 下定决心 319. 对于 self.url_patterns 中的模式:文件“/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py” 在 url_patterns 347. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) 文件 “/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py” 在 urlconf_module 342. self._urlconf_module = import_module(self.urlconf_name) 文件 “/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py”在 导入模块 35. 导入(名称)文件“/home/gpanterov/MyProjects/django/tango_with_django_project/tango_with_django_project/urls.py” 在 6. admin.autodiscover() 文件“/usr/local/lib/python2.7/dist-packages/django/contrib/admin/init.py” 在自动发现中 29. import_module('%s.admin' % app) 文件“/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py”中 导入模块 35. 导入(名称)文件“/usr/local/lib/python2.7/dist-packages/django/contrib/contenttypes/admin.py” 在 5.从django.contrib.admin.checks导入InlineModelAdminChecks文件 “/usr/local/lib/python2.7/dist-packages/django/contrib/admin/checks.py” 在 6. from django.contrib.admin.utils import get_fields_from_path, NotRelationField, flatten File “/usr/local/lib/python2.7/dist-packages/django/contrib/admin/utils.py” 在 6. from django.contrib.auth import get_permission_codename

异常类型:/admin/ 处的 ImportError 异常值:无法导入 name get_permission_codename

当我删除 admin.autodiscover() 行时,开发服务器运行并且我能够进入管理面板,但是当我使用之前创建的超级用户密码登录时,我收到消息“你不需要”无权编辑任何内容。”而且我没有看到我创建的任何类别。

【问题讨论】:

【参考方案1】:

我在将 django 从最新版本 (1.8) 降级到旧版本 (1.4) 进行测试时遇到此错误。

这里的问题是git在切换分支时不会删除.pyc文件(因为它们是.gitignore'ed)并且python只有在对应的.py文件是更新时才重新生成它们> 比.pyc 文件(有关详细信息,请参阅this question)。

解决办法是删除django/contrib/admindjango/contrib/contenttypes目录下的所有*.pyc文件。

【讨论】:

【参考方案2】:

无法导入名称 get_permission_codename

确保您没有在系统中安装所有版本的 django。 如果有则删除所有并安装新的 django

【讨论】:

以上是关于Django ImportError:无法导入名称 get_permission_codename的主要内容,如果未能解决你的问题,请参考以下文章

Django:ImportError:无法导入名称“用户”

ImportError:升级到 Django 4.0 后无法从“django.conf.urls”导入名称“url”

Django ImportError:无法导入名称 get_permission_codename

Django 上的 MakeMigration 错误 - ImportError:无法从“django.db.models”导入名称“FieldDoesNotExist”

ImportError:无法导入名称泛型

由于 ImportError,Celery Django 部署因 Elastic Beanstalk 失败:无法导入名称“Celery”(ElasticBeanstalk::ExternalInvoc