6

Django の開発バージョンを実行していますが、CSRF に変更が加えられたため、ファイルブラウザ アプリがトランクと互換性がないようです。公式リリース (1.1) にダウングレードするにはどうすればよいですか?

私は共有ホストで作業しており、現在 Django を実行している方法は次のとおりです。

~/local/lib/python2.6/site-packages/には/django/、他のいくつかのフォルダー (アプリごとに 1 つ) が含まれています。

~/local/lib/python2.6/site-packages/pythonパスにあります。

その中には、プロジェクト ファイル (manage.py、settings.py など) を含む/site-packages/へのシンボリック リンクもあります。/projectname/

私は FastCGI を使用し/public_html/ているため、dispatch.fcgiを呼び出すために使用される がありますdjango.core.servers.fastcgi.runfastcgi.htaccessDjango がそれらを処理できるように、ファイルを使用してすべての要求を dispatch.fcgi にリダイレクトします。

削除(pythonパスから移動)してから/django/、Djangoのリリースバージョンをダウンロードして、以前の/django/フォルダーがあった場所に配置しようとしました。これにより、次のエラーが発生しました。

CSRF という名前のモジュールはありません。

最初のエラーを解決したものをダウンロードmiddleware/csrf.py/trunk/ましたが、その後他のエラーが発生しました。

1.1 にダウングレードするにはどうすればよいですか? ゼロから始めることは問題外ではありませんが、可能であれば明らかにこれを避けたいと思います。

4

3 に答える 3

8

/site-packages/ディレクトリでファイルを探しDjango-1.other_stuff.egg-info、見つかったファイルをすべて削除してから、もう一度やり直してください (1.1 のコードはsite-packages/django/ディレクトリに残っています。これが機能しない場合は、最新リリースの tarball (python setup.py) から Django インストーラを再実行してください)。インストール) で、うまくいくはずです。

あるいは、pip がインストールされている場合は、おそらくターミナルで実行できますpip install -U Django==1.1.1

それらのegg-infoファイルとpipコマンドの大文字Dに注意してください。Django

于 2009-11-11T23:58:12.860 に答える
1

ダウングレードに成功しましたが、実際には非常に簡単なプロセスです。うまくいけば、これが私がやったことを見落としている人々を助けるでしょう.

1.1.1 の django-admin.pyのstartprojectコマンドは、現在の開発リリースとは少し異なる settings.py ファイルを作成します。

startproject現在の開発リリースでは、追加のミドルウェア クラス csrf があります。1.1.1 の startproject コマンドは同じ settings.py を作成しますが、3 番目のクラスは削除されています。この行をコメントアウトまたは削除すると、Django が正常に動作します。

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware', #additional middleware class
    'django.contrib.auth.middleware.AuthenticationMiddleware',
)
于 2009-11-12T08:35:37.997 に答える
1

/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 ...
于 2009-11-16T02:12:27.637 に答える