【发布时间】: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