문제

Django 개발 버전을 실행 중인데 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 파일은 Django가 요청을 처리할 수 있도록 모든 요청을 dispatch.fcgi로 리디렉션하는 데 사용됩니다.

제거 (파이썬 경로 밖으로 이동)를 시도했습니다. /django/ 그런 다음 Django의 릴리스 버전을 다운로드하여 이전 버전에 넣습니다. /django/ 폴더였습니다.이로 인해 다음 오류가 발생했습니다.

CSRF라는 모듈이 없습니다.

다운로드했습니다 middleware/csrf.py ~에서 /trunk/ 첫 번째 오류를 해결했지만 다른 오류가 발생했습니다.

1.1로 다운그레이드하려면 어떻게 해야 합니까?처음부터 시작하는 것이 불가능하지는 않지만 가능하다면 분명히 이것을 피하는 것이 좋습니다.

도움이 되었습니까?

해결책 2

성공적으로 다운그레이드에 성공했으며 실제로는 매우 쉬운 프로세스입니다.이것이 내가 한 일을 간과하는 사람들에게 도움이 되기를 바랍니다.

그만큼 startproject 1.1.1의 django-admin.py 명령은 현재 개발 릴리스와 약간 다른 settings.py 파일을 생성합니다.

startproject 현재 개발 릴리스에는 추가 미들웨어 클래스인 csrf가 있습니다.1.1.1의 startproject 명령은 동일한 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/ 예배 규칙서.그래도 작동하지 않으면 최신 릴리스 tarball(python setup.py install)에서 Django 설치 프로그램을 다시 실행하면 됩니다.

또는 다음과 같은 경우 핍이 설치됨 넌 아마 그냥 할 수 있을 거야 pip install -U Django==1.1.1 터미널에서.

자본을 참고하세요 D ~에 Django egg-info 파일과 pip 명령에서.

/home/me/lib/와 같은 사용자 공간에 원하는 버전의 django를 설치할 수 있습니다.

그런 다음 mysite.wsgi에서 mod_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