2011-01-10 30 views
0

私は、ユーザーのユーザー情報を拡張する方法をいくつか見出し、モデル継承方法を採用することに決めました。ユーザーのdjango継承

は、例えば、私が持っている:今、それは私が新しいユーザーにメールを送信して私を助けるためにdjango_registrationをダウンロードし、実行され

class Parent(User): 
    contact_means = models.IntegerField() 
    is_staff = False 
    objects = userManager() 

を。つまり、登録フォームを使用して新規ユーザーを登録するのではなく、django_registrationの電子メール送信/承認機能を呼び出すことです。だから、私のワークフローは:

私の問題は、django-registrationは新しいユーザーと一緒にユーザーテーブルに新しい登録プロファイルを作成することです。これを調整してカスタムユーザーテーブルにユーザーエントリを追加できるようにするにはどうすればよいですか。

私は

modelAdmin

としかし、私は私にdjango_registrationから生成されたユーザオブジェクトを保存していないか、django_registrationからcreate_inactive_userを起動するsave_model方法を変更を作成しようとしました

モデルの継承を使用していて、親モデルに外部キー属性がない場合は、親テーブルです。

+0

はいあなたはユーザーへの暗黙的な外部キーを持っていますモデルの継承によって作成された親は、user_ptrと呼ばれます –

答えて

2

それはおそらくのようなものです:

p = Parent() 
p.user_ptr = user 
p.contact_means = ... 
p.save() 

(Djangoがモデルの継承を行うときのために外部キーを作成し、プラス_ptrで終わる属性)

+0

は_ptrをキーワードに組み込みますか? – goh

+2

No. DjangoのORMはメタプログラミングを使用して、モデルのフィールドとリレーションに基づいてPythonクラスの属性を作成します。これらの追加属性のために、(例えば、_set、_ptrをフィールド名に追加することによって)特定の規則を使用します。 –

+0

私にとってはうまくいかず、これは 'user'のすべてのデータをNullまたはデフォルトに上書きします。 – kxxoling