题
我正在运行的Django开发版本,它看来,filebrowser应用程序是不是因为CSRF所做的更改与躯干兼容。如何降级到正式发布(1.1)?
我在共享主机,且本人curently运行的Django的方式上的工作如下:
~/local/lib/python2.6/site-packages/
包含/django/
以及其它多个文件夹(每个应用)。
~/local/lib/python2.6/site-packages/
是Python路径上。
在/site-packages/
也有一个符号链接到/projectname/
包含项目文件(manage.py,settings.py,等)。
我使用FastCGI,因此在/public_html/
我有用于调用dispatch.fcgi
一个django.core.servers.fastcgi.runfastcgi
。甲.htaccess
文件用于重定向到dispatch.fcgi所有请求,以便使Django能够处理它们。
我试图消除(移出蟒路径的)/django/
然后下载的Django的发布版本,并把它在先前/django/
夹了。这将产生以下错误:
没有模块命名CSRF。
我下载从middleware/csrf.py
/trunk/
其中清理第一错误但随后产生的其它错误。
我应该如何去降级到1.1吗?从头开始是不是出了问题,但如果可能的话我会很明显,而避免这一点。
解决方案 2
我已成功地成功地降级,它实际上是一个非常简单的过程。希望这将有助于人走出谁忽视我做了什么。
django-admin.py在1.1.1 startproject
命令创建比当前发展释放一个稍微不同的settings.py文件。
startproject
与当前dev的释放有一个额外的中间件类 - CSRF。在1.1.1 startproject命令命令创建相同settings.py,但与第三类中删除。注释出或删除这条线得到的Django正常工作。
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware', #additional middleware class
'django.contrib.auth.middleware.AuthenticationMiddleware',
)
其他提示
看在你/site-packages/
目录Django-1.other_stuff.egg-info
文件并删除任何你找到,然后再次尝试(与代码1.1仍处于site-packages/django/
目录。如果这不起作用,只是再次从运行最新发布的Django的安装程序压缩包(蟒蛇setup.py安装),你应该是不错的。
另外,如果您有 PIP安装你可能只是做pip install -U Django==1.1.1
终端。
请注意在那些鸡蛋信息文件D
资本Django
和PIP命令。
您可以只安装你在你的用户空间所需版本的Django,说在/ home /我的/ lib目录/
那么,如果你在你的mysite.wsgi使用mod_wsgi的有一行:
sys.path.insert(0,'/home/me/lib/Django-1.1')
这将确保Django是从安装,而不是服务器范围加载。
您还需要使正确的django-admin.py启动调整你的shell环境路径变量,或直接运行
python /home/me/lib/Django-1.1/django/bin/django-admin.py ...