1

Djangoアプリを作成していますが、アカウントがローカルで作成されるたびに、ProvisioningAPIを使用してGoogleAppsでホストされているメールにアカウントを作成したいと考えています。

シグナルのみを使用しますが、パスワードをサイト間で同期させたいので、モンキーパッチを適用し、ラッパーUser.objects.create_userUser.set_password使用してGoogleアカウントを作成し、パスワードを更新しました。

モンキーパッチは眉をひそめているようですので、これを達成するためのより良い方法はありますか?

4

4 に答える 4

1

User モデルのサブクラス化を検討しましたか? これにより、さまざまな問題が発生する可能性があり、新しいリリースでのみ利用可能です (変更がいつ行われたかはわかりません。トランクにいます)。

于 2009-03-03T05:08:58.583 に答える
0

UserをDjango1.0.2でサブクラス化します。基本的に、user_idにリンクする別のテーブルを作成します。

class User(MyBaseModel):
    user = models.OneToOneField(User, help_text="The django created User object")

そして実行時に

@login_required
def add(request) :
    u = request.user.get_profile()

その後、必要なメソッドを簡単に上書きできます。

そして、モンキーパッチについて聞いたことがない人のために:http: //en.wikipedia.org/wiki/Monkey_patchゲリラパッチからの派生です。

于 2009-07-21T07:56:22.283 に答える
0

モンキーパッチは間違いなく悪いです。コード/情報がほとんどないため、何も言えません。しかし、ある時点 (ビュー、フォーム) でクリアテキストのパスワードを持っていると思いますので、手動で同期してみませんか?

于 2009-06-06T05:02:04.623 に答える
0

新しいクラスを使用するようにすべてのコードを変更できる限り、サブクラス化が最善の方法のようです。これは、Django の最新リリースでサポートされていると思います。

于 2009-04-15T00:28:07.620 に答える