在本地提供服务时尝试查看我的Django应用程序时遇到此错误:
发生服务器错误。请联系管理员。
即使调试错误,它仍然是这样。控制台显示:
django.core.exceptions.ImproperlyConfigured: Module "django.contrib.auth.
are" does not define a "SessionAuthenticationMiddleware" attribute/class
并且四处搜索我发现了评论的建议
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
# 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
这确实解决了问题,因为应用程序确实显示了,但是当我转到管理面板时,我收到了消息:
Site administration
You don't have permission to edit anything.
我想在尝试将应用程序推送到heroku并运行之前,我会尝试回滚到最后一次提交:
git reset --hard 'appropriate commit'
这似乎根本没有做任何事情。我仍然和以前一样。此外,运行:
python manage.py makemigrations
或
python manage.py migrate
结果
Unknown command: 'makemigrations'
Type 'manage.py help' for usage.
和
Unknown command: 'migrate'
Type 'manage.py help' for usage.
以前这两个命令都运行得很好。
如果有帮助,我会在事情开始时尝试将addthis安装到应用中。在git重置后,当我输入git status时,我得到:
Untracked files:
blog/migrations/0005_join_ip_address.py
blog/migrations/0006_auto_20150318_1716.py
blog/migrations/0007_remove_join_ip_address.py
没有更改添加到提交(使用“git add”和/或“git commit -a”)
其他细节:
Django 1.6.5
Python 3.4.1 |Anaconda 2.1.0
Using a Virtualenv
任何帮助都会受到大力赞赏。
答案 0 :(得分:2)
正如其他人所注意到的,你的Django版本应该是1.7;这是由您安装django-addthis
引起的。
当前版本的django-addthis
明确指出Django<=1.6.5
为依赖项。出于某种原因,这会提示pip
降级您的安装:
$ pip install django-addthis
Downloading/unpacking django-addthis
Downloading django-addthis-2.0.0.tar.gz
Running setup.py (path:...) egg_info for package django-addthis
Downloading/unpacking Django>=1.4,<=1.6.5 (from django-addthis)
Downloading Django-1.6.5-py2.py3-none-any.whl (6.7MB): 6.7MB downloaded
Installing collected packages: django-addthis, Django
Running setup.py install for django-addthis
Found existing installation: Django 1.7.5
Uninstalling Django:
Successfully uninstalled Django
Successfully installed django-addthis Django
最后四行显示了我在自己的Django 1.7项目中尝试此操作时发生的情况。 pip
愉快地降级你的Django应用程序。由于virtualenv
依赖项通常不存储在Git中,因此当您执行git status
时,您将无法看到此信息。
唯一的解决方案是卸载django-addthis
并重新安装正确的Django版本:
$ pip uninstall django-addthis && pip install --upgrade -r requirements.txt
答案 1 :(得分:0)
您正在针对已安装的1.6版本运行Django 1.7项目。升级你的Django安装。