我将1.1.1 Django项目切换到1.3.1。在urls.py中调用admin.autodiscover()后,管理框架中的sites.py会引发异常,说明:
ImproperlyConfigured at /
Put 'django.contrib.contenttypes' in your INSTALLED_APPS setting in order
to use the admin application
在settings.py中,我有:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'my.app'
)
我检查过的事情:
如果我去管理中的违规行(在check_dependencies,第164行中的Django-1.3.1 / django / contrib / admin / sites.py),我看到:
if not ContentType._meta.installed:
raise ImproperlyConfigured(...)
如果我注释掉支票,我可以运行我的项目,管理员也可以。我不确定如何在模型类型上设置_meta.installed属性,所以我不知道下一步该做什么。
我还应该注意,同样的Django 1.3.1安装正在使用类似设置文件的其他项目。
任何提示或资源都将不胜感激!谢谢!
答案 0 :(得分:1)
django.contrib.contenttypes包括两个模型,ContentType和ContentTypeManager。我的猜测是,在将django.contrib.contenttypes添加到INSTALLED_APPS后,您还没有运行manage.py syncdb
。
这将使if not ContentType._meta.installed
检查变得可理解:ContentType模型尚未在数据库中使用。