【问题标题】:django guardian importerror but other examples workdjango Guardian importerror 但其他示例有效
【发布时间】:2016-03-03 23:11:17
【问题描述】:

首先,我是 django 和 python 的新手。

我正在开发一个使用 django-guardian 1.3.2 的现有项目。我通过pip list 验证了部署此应用的服务器也使用 1.3.2。

我正在尝试了解异常的原因。

已有 admin.py 文件,可以正常加载。

#!/usr/bin/env python
# coding: utf-8
from guardian.admin import GuardedModelAdmin
from django.contrib import admin

from devices import models


class SomeModelAdmin(GuardedModelAdmin):
  pass


admin.site.register(models.SomeModel, SomeModelAdmin)

我添加了我的,这也可以(在我的机器上)。

#!/usr/bin/env python
# coding: utf-8
from guardian.admin import GuardedModelAdmin


from django.contrib import admin
from common import models


class MyModel1Admin(GuardedModelAdmin):
    pass


admin.site.register(models.MyModel1, MyModel1Admin)


class MyModel2Admin(GuardedModelAdmin):
    pass


admin.site.register(models.MyModel2, MyModel2Admin)

我们部署了应用程序,但现在它无法启动并出现以下异常:

Traceback(最近一次调用最后一次):文件 "/usr/local/share/.virtualenvs/my_app/lib/python2.7/site-packages/django/core/handlers/wsgi.py", 第 187 行,在 调用 self.load_middleware() 文件“/usr/local/share/.virtualenvs/my_app/lib/python2.7/site-packages/django/core/handlers/base.py”, 第 47 行,在 load_middleware 中 mw_instance = mw_class() 文件“/usr/local/share/.virtualenvs/my_app/lib/python2.7/site-packages/django/middleware/locale.py”, 第 24 行,在 init 中 对于 get_resolver(None).url_patterns 中的 url_pattern:文件“/usr/local/share/.virtualenvs/my_app/lib/python2.7/site-packages/django/core/urlresolvers.py”, 第 365 行,在 url_patterns 中 模式= getattr(self.urlconf_module,“urlpatterns”,self.urlconf_module)文件 "/usr/local/share/.virtualenvs/my_app/lib/python2.7/site-packages/django/core/urlresolvers.py", 第 360 行,在 urlconf_module 中 self._urlconf_module = import_module(self.urlconf_name) 文件“/usr/local/share/.virtualenvs/my_app/lib/python2.7/site-packages/django/utils/importlib.py”, 第 40 行,在 import_module 中 import(名称)文件“./sites/zpanel/urls.py”,第 19 行,在 admin.autodiscover() 文件“/usr/local/share/.virtualenvs/my_app/lib/python2.7/site-packages/django/contrib/admin/init.py”, 第 29 行,在自动发现中 import_module('%s.admin' % app) 文件 "/usr/local/share/.virtualenvs/my_app/lib/python2.7/site-packages/django/utils/importlib.py", 第 40 行,在 import_module 中 import(名称)文件“./common/admin.py”,第 3 行,在 from Guardian.admin import GuardedModelAdmin ImportError: No module named admin

服务器运行python 2.7.6,我用的是2.7.10。我不认为这是一个问题,因为其他 admin.py 文件从guardina.admin 导入就好了。

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'sites.this_app',
    'notifications.email',
    'raven.contrib.django.raven_compat',
    'guardian',
    'my_stuff',
    'existing_ones'
    'rest_framework',
    'rest_framework.authtoken',
    'south',
    'djangular',
    'widget_tweaks',
    'djrill',
    'corsheaders',
    'django_extensions',
    'parler',
    'watson',
    'baldr',
)

【问题讨论】:

  • 您是否检查过生产中安装了哪个版本的 Guardian?
  • 您是否使用不同的设置进行开发和生产?
  • @zanderle 守护者匹配的版本。我不认为我正在使用不同的设置。你的意思是settings.py 文件,对吧?
  • 我的意思是settings.py 是的。你跑pip freeze 来检查版本?你也可以粘贴你的INSTALLED_APPS
  • @zanderle 我跑了pip list

标签: python django python-2.7 django-admin django-guardian


【解决方案1】:

事实证明,在我的 admin.py 文件所在的目录中,有一个名为 guardian 的目录。此目录不在源(不再)中,也不在我的本地计算机上。我猜这是很久以前部署的一些残留物......

【讨论】:

    猜你喜欢
    • 2012-06-03
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 2012-06-07
    • 2012-05-21
    相关资源
    最近更新 更多