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.
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 .
Go to Settings -> Project Interpreter . Double-click the Django package. Activate the check box Specify version and select the version you want.
Simply type python -m django --version or type pip freeze to see all the versions of installed modules including Django.
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.
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.
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',
)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With