1. ホーム
  2. python

[解決済み] 1つのdjangoのModelFormで複数のモデル?

2022-11-25 15:10:25

質問

複数のモデルを1つの ModelForm に含めることができますか? 私はプロフィール編集フォームを作ろうとしています。 そこで、User モデルからいくつかのフィールドを含める必要があります。 UserProfileモデルからいくつかのフィールドを含める必要があります。 現在、私は次のような2つのフォームを使用しています。

class UserEditForm(ModelForm):

    class Meta:
        model = User
        fields = ("first_name", "last_name")

class UserProfileForm(ModelForm):

    class Meta:
        model = UserProfile
        fields = ("middle_name", "home_phone", "work_phone", "cell_phone")

これらを1つのフォームに統合する方法はありますか?それとも、フォームを作成して、自分でDBの読み込みと保存を処理する必要がありますか?

どのように解決するのですか?

テンプレートで両方のフォームを表示するには、1つの <form> html 要素の中に表示します。そして、ビューの中でフォームを別々に処理すればよいのです。その際も form.save() を使うことができ、DBの読み込みと保存を自分で処理する必要はありません。

この場合は必要ありませんが、同じフィールド名を持つフォームを使う場合は prefix kwarg for django forms を調べてみてください。(私はそれについての質問に答えました ここで ).