2011-06-22 11 views
0

私はupdate_profileフォームを作成しようとしています。このフォームは、 拡張されたユーザー情報を元の形式で更新することができます。 アカウントを作成できるフォームがあります。多くの 他のフィールドがこのフォームに表示されていません。これらのフィールドの残りの部分は、ユーザーが実際にログインしてプロファイルを編集しようとしたときに検出されます。 私が理解できないのは、この情報を更新できるようにそのクラスのsave関数を作る方法です。 私が作成した拡張ユーザークラスと同様に、ユーザーを作成して保存する保存機能 があります。しかし、このフォームで別の ユーザーを作成したくありません。私は、現在認証されている ユーザーを更新したいだけです。私は、 UserManager()にupdate_user-type関数があると思いましたが、そうではありません。私はグーグルで試してみたが、多くは には来なかった。助けてください? subset of the fieldsでカスタムUserProfileモデルにフォームを作成するための拡張ユーザーフィールドのユーザー情報を更新しています - Django

答えて

0

使用ModelForm:いくつかのケースでは

フォーム上のフィールドのサブセットを使用して

、あなたはすべてたくないかもしれません フォームに表示されるモデルフィールド。モデルフィールドにはFalse =編集可能に設定し

  1. :モデルフィールドのだけ サブセットを使用するのModelFormを伝えるの三つの方法 があります。 その結果、ModelForm経由で モデルから作成されたフォームには、 フィールドは含まれません。
  2. ModelFormの内部Metaクラスのfields属性 を使用します。 この属性が指定されている場合は、 フォームに含めるフィールド名のリストが である必要があります。フォームに という名前が指定されている順番は、フォームがレンダリングするときに守られている です。
  3. ModelFormの内部Metaクラスのexclude属性を使用します。この 属性が指定されている場合は、 フォームから除外するフィールド名のリスト である必要があります。

https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#using-a-subset-of-fields-on-the-form

+0

私は特定のカテゴリを除外すると、フォームが自分自身にする方法を理解するが、私は非常にこれを求めていませんよ。私はHTMLでフォームを作る場合、私は "値"パラメータを設定することができます、私はより良い説明しようとしましょう。私はすべてのフォームフィールドにこの値をデータベースの値に設定する必要があります。次に、ユーザーが値を変更して再サブミットすると、この情報が更新されます。私を助けてください、ありがとう。 –

+0

あなたのビューでは、 'form = MyForm(instance = myinstance)'を使って値を読み込みます。詳細はこちら:https://docs.djangoproject.com/en/dev/topics/forms/modelforms/ – Udi

関連する問題