0

私が取引を理解したように、UserDjangoモデルを拡張する標準的な方法はを実装することprofilesです。

一意性と認証Modelのモデルに基づいた3種類のプロファイル(3つの異なるサブクラス)があるので、これは私に非常に適しています。User

ただし、ユーザー作成フォームを実装するための最良の方法を決定するのに苦労しています。するべきか...

  1. ModelFormミックスインを使用する: withmodel=Userとone withを継承しmodel=Profile、手動でオーバーライドsave()clean()て、ベースのメソッドを呼び出し、外部キーの割り当てを実行します。

  2. コンポジションを使用する:2つを継承Formし、手動でインスタンス化して管理しModelFormsます。

  3. フォームを個別にインスタンスsave()化し、手動で順序付けてインスタンス化します。

  4. 私が考えていなかった最良の方法。

正しい呼び出しを行っていることを確認できるように、(ただし最小限の)実装をいただければ幸いです。

前もって感謝します。

4

1 に答える 1

1

プロファイルモデルとcontribユーザーモデルの両方の結合されたModelFormとして機能する単一のフォームを作成できます。これを実現するには、initでフォームkwargsを少し操作する必要があります。このスニペットを参照してください:http://djangosnippets.org/snippets/2081/

于 2012-08-31T18:26:49.527 に答える