Как понизить рейтинг Django с dev до 1.1
Вопрос
Я запускаю версию Django для разработки, и кажется, что приложение filebrowser несовместимо с trunk из-за изменений, внесенных в CSRF.Как мне перейти на официальную версию (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
.A .htaccess
файл используется для перенаправления всех запросов в dispatch.fcgi, чтобы Django мог их обрабатывать.
Я попытался удалить (переместившись с пути python) /django/
а затем скачиваем релизную версию Django и помещаем ее туда, где была предыдущая /django/
папка была.Это привело к следующей ошибке:
Нет модуля с именем CSRF.
Я скачал middleware/csrf.py
От /trunk/
который устранил первую ошибку, но затем привел к появлению других ошибок.
Как мне следует понизить рейтинг до 1.1?О том, чтобы начинать с нуля, не может быть и речи, но я бы, очевидно, предпочел избежать этого, если это возможно.
Решение 2
Мне удалось успешно понизить рейтинг, и на самом деле это чрезвычайно простой процесс.Надеюсь, это поможет людям, которые не замечают того, что я сделал.
Тот Самый startproject
команда django-admin.py в 1.1.1 создает файл, немного отличающийся settings.py от текущей версии разработки.
startproject
в текущей версии для разработчиков появился дополнительный класс промежуточного программного обеспечения - csrf.Команда startproject в 1.1.1 создает то же самое 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 из архива последней версии (установка Python setup.py), и все будет хорошо.
Альтернативно, если у вас есть пункт установлен ты, наверное, можешь просто сделать pip install -U Django==1.1.1
в терминале.
Обратите внимание на столицу D
в Django
в этих файлах egg-info и команде pip.
вы можете просто установить Django нужной вам версии в своем пользовательском пространстве, скажем, в /home/me/lib/
тогда, если вы используете mod_wsgi, в вашем mysite.wsgi есть строка:
sys.path.insert(0,'/home/me/lib/Django-1.1')
это гарантирует, что django загружается из вашей установки, а не для всего сервера.
вам также необходимо настроить переменную пути к среде оболочки, чтобы правильный django-admin.py запускался или просто запускался напрямую.
python /home/me/lib/Django-1.1/django/bin/django-admin.py ...