Вопрос

Я запускаю версию 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 ...
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top