Как понизить Django с dev до 1.1 - PullRequest
6 голосов
/ 12 ноября 2009

Я использую версию разработки Django, и кажется, что приложение filebrowser несовместимо с транком из-за изменений, внесенных в CSRF. Как мне перейти на официальный релиз (1.1)?

Я работаю на общедоступном хосте, и в настоящий момент я использую Django следующим образом:

~/local/lib/python2.6/site-packages/ содержит /django/, а также несколько других папок (по одной для каждого приложения).

~/local/lib/python2.6/site-packages/ находится на пути к питону.

В /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 ]

8 голосов
/ 12 ноября 2009

Найдите в вашем каталоге /site-packages/ файлы Django-1.other_stuff.egg-info и удалите все, что найдете, затем повторите попытку (с кодом 1.1, который все еще находится в каталоге site-packages/django/. Если это не работает, просто повторите Установщик Django из последней версии tarball (python setup.py install) и вам должно быть хорошо.

В качестве альтернативы, если у вас установлен пункт , вы, вероятно, можете просто сделать pip install -U Django==1.1.1 в терминале.

Обратите внимание на заглавную букву D в Django в этих файлах информации о яйцах и команду pip.

1 голос
/ 16 ноября 2009

вы можете просто установить 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 ...
1 голос
/ 12 ноября 2009

Мне удалось успешно понизить рейтинг, и это на самом деле очень простой процесс. Надеюсь, это поможет людям, которые упустят из виду то, что я сделал.

Команда startproject файла django-admin.py в 1.1.1 создает файл немного отличающийся от settings.py, чем текущий выпуск для разработки.

startproject в текущей версии dev имеет дополнительный класс промежуточного программного обеспечения - 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',
)
...