0

ジャンゴの真新しい。認証、ldap などを行う django 0.96x を使用する従来の django プロジェクトがあり、かなり複雑なので、そのコードを書き直したくありません。

フォーラム ソリューション (既製) を追加したいのですが、これまでに見たものはすべて django 1.x が必要です。

これを機能させる方法を見つけようとしていますが、次のように絞り込みました。

  1. django 0.96 で動作する古いフォーラム ソリューションを使用します (これは存在しますか?)
  2. フォーラム ソリューションにパッチを適用して、0.96 との「下位互換性」を確保してください (悪夢の可能性があります)。
  3. 2 つの異なる django を使用します: 0.96 と 1.x (Apache と mod_python を使用しているため) には 2 つの異なる Location ディレクティブがあります。それぞれの PYTHONPATH を適切に調整します (または virtualenv などを使用します)。

しかし、オプション 3 は機能しますか? 私は django.contrib.auth とその友人がどのように機能するかについて十分に知りません。2 つの異なるバージョンの django を実行すると、ユーザーはログインしたままになりますか? 0.96 プロジェクトにパッチを適用して 1.x にすることについては言及しませんでしたが、実際にはそれを行う時間がありません。

助言がありますか?

4

3 に答える 3

1

可能ですが、オプション#3を実行するのはかなり苦痛かもしれません。

オプション4はどうですか?弾丸を噛んでDjango1.1.1にアップグレードしてください。0.97preのサイトをいくつか使ってこれを行いましたが、思ったよりも時間がかかりませんでした。最大の苦痛は、管理者のものを扱うことでした。個別のadmin.pyファイルを使用する代わりに、Modelクラスのすぐ下にAdminクラスを配置するだけです。

DVCSにMercurialを使用していますが、クローンを作成し、ハッキングし、マージしたところ、機能しました。サイトごとに約3〜5時間かかり、カスタムテンプレートタグの変更が含まれていました。

于 2010-01-07T17:53:18.507 に答える
0

Django0.96テーブルを1.1に公開することが可能です-データベースビューにラップされたアンマネージモデルを使用できます。言い換えれば、あなたは発行します:

CREATE VIEW auth_user AS SELECT * from django096db.auth_user; (および他のテーブルの同様のコマンド)

次に、Django 1.1を0.96と同期します(0.96テーブルが1.1と互換性があると仮定すると、私はそれをチェックしていません)。

于 2010-01-08T17:03:51.890 に答える
0

ユーザーのログイン ステータスは、セッションを使用して保存されます。トランクを 0.96 ソースと比較してわかる限り、セッションは同じ方法で Cookie にコミットされ、認証はユーザー ID とバックエンドを同じ方法で保存します。2 つのアプリが同じセッション ストレージを使用し、同じドメインにある場合、動作するはずです。(安全のために、バックエンドのロジックが変更された場合に備えて、安全な Cookie を使用しません。その部分はチェックしていません。)

ただし、0.96 には、最新の Django のようなプラグ可能なセッション ストアがありませんでした。おそらく、現在のバージョンの Django を 0.96 セッションで動作させるには、0.96 データベースに接続してそこでセッションを操作する現在の Django 用のセッション バックエンドを作成する必要があります。ただし、それがうまくいくかどうかはわかりません。

于 2010-01-07T17:47:06.053 に答える