Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to downgrade Django from dev to 1.1

I am running the development version of Django and it appears that the filebrowser app is not compatible with trunk because of changes made to CSRF. How do I downgrade to the official release (1.1)?

I am working on a shared host and the way that I am curently running Django is as follows:

~/local/lib/python2.6/site-packages/ contains /django/ as well as several other folders (one for each app).

~/local/lib/python2.6/site-packages/ is on the python path.

Within /site-packages/ there is also a symlink to /projectname/ that contains the project files (manage.py, settings.py, etc.).

I am using FastCGI and therefore in /public_html/ I have a dispatch.fcgi that is used to call django.core.servers.fastcgi.runfastcgi. A .htaccess file is used to redirect all requests to dispatch.fcgi so that Django can handle them.

I tried removing (moving out of the python path) /django/ and then downloading the release version of Django and putting it where the previous /django/ folder was. This produced the following error:

No module named CSRF.

I downloaded middleware/csrf.py from /trunk/ which cleared up the first error but then produced other errors.

How should I go about downgrading to 1.1? Starting from scratch isn't out of the question but I'd obviously rather avoid this if possible.

like image 494
Peter Horne Avatar asked Nov 11 '09 23:11

Peter Horne


People also ask

How do I downgrade my Django version?

Change the Django version# If you want to upgrade Django, then you can run pip install --upgrade django . If you would like to downgrade, then you can run pip install django==<versionnumber> . Replace <versionnumber> with the actual number, like 2.2. 1 .

How do I change Django version in project?

Go to Settings -> Project Interpreter . Double-click the Django package. Activate the check box Specify version and select the version you want.

How do I use Django version?

Simply type python -m django --version or type pip freeze to see all the versions of installed modules including Django.

Could not find a version that satisfies the requirement Django == 4.0 1?

The error "Could not find a version that satisfies the requirement django" occurs for multiple reasons: Installing Django using a Python version that is not supported by the package. Having an outdated version of pip or using pip for Python 2 instead of pip3 . Misspelling the name of the module.


2 Answers

Look in your /site-packages/ directory for Django-1.other_stuff.egg-info files and delete any you find, then try again (with the code for 1.1 still in the site-packages/django/ directory. If this doesn't work, just re-run the Django installer from the latest release tarball (python setup.py install) and you should be good.

Alternatively, if you have pip installed you can probably just do pip install -U Django==1.1.1 in the terminal.

Note the capital D in Django in those egg-info files and the pip command.

like image 75
John Debs Avatar answered Sep 22 '22 10:09

John Debs


I have managed to successfully downgrade and it is actually an extremely easy process. Hopefully this will help people out who overlook what I did.

The startproject command of django-admin.py in 1.1.1 creates a slightly different settings.py file than the current development release.

startproject in with the current dev release has an extra middleware class - csrf. The startproject command in 1.1.1 creates the same settings.py but with the third class removed. Commenting out or removing this line gets Django working properly.

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware', #additional middleware class
    'django.contrib.auth.middleware.AuthenticationMiddleware',
)
like image 37
Peter Horne Avatar answered Sep 19 '22 10:09

Peter Horne