如何将Django从dev降级到1.1

时间:2009-11-11 23:46:24

标签: django downgrade

我正在运行Django的开发版本,并且由于对CSRF所做的更改,文件浏览器应用程序似乎与trunk不兼容。我如何降级到正式版(1.1)?

我正在共享主机上工作,而我正在运行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可以处理它们。

我尝试删除(移出python路径)/django/,然后下载Django的发行版并将其放在上一个/django/文件夹所在的位置。这产生了以下错误:

  

没有名为CSRF的模块。

我从middleware/csrf.py下载了/trunk/,清除了第一个错误,但后来又产生了其他错误。

我应该如何降级到1.1?从头开始并不是不可能的,但如果可能的话,我显然宁愿避免这种情况。

3 个答案:

答案 0 :(得分:8)

/site-packages/目录中查找Django-1.other_stuff.egg-info个文件并删除您找到的任何文件,然后再试一次(1.1的代码仍然在site-packages/django/目录中。如果这不起作用,只需从最新发布的tarball(python setup.py install)重新运行Django安装程序,你应该很好。

或者,如果您有pip installed,则可以在终端中执行pip install -U Django==1.1.1

请注意那些egg-info文件和pip命令中D中的大写Django

答案 1 :(得分:1)

我成功地降级了,这实际上是一个非常简单的过程。希望这能帮助那些忽视我所做的人。

1.1.1中django-admin.py的startproject命令创建了一个与当前开发版本略有不同的settings.py文件。

当前开发版本中的

startproject有一个额外的中间件类--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',
)

答案 2 :(得分:1)

你可以在你的用户空间安装你想要的版本的django,比如/ home / me / lib /

然后如果你在你的mysite.wsgi中使用mod_wsgi有一行:

sys.path.insert(0,'/home/me/lib/Django-1.1')

这将确保从您的安装加载django,而不是服务器范围。

您还需要调整shell环境路径变量,以便正确启动django-admin.py或直接运行

python /home/me/lib/Django-1.1/django/bin/django-admin.py ...