1. ホーム
  2. django

[解決済み] Django モデルフォーム。save(commit=False) は何のために使うのですか?

2022-10-21 14:09:31

質問

なぜ私は save(commit=False) からフォームオブジェクトを作成するのではなく ModelForm サブクラスからフォームオブジェクトを作成して is_valid() を実行して、フォームとモデルの両方を検証しますか?

言い換えれば、何が save(commit=False) は何のためにあるのか?

もし差し支えなければ、これが有用であるような仮想的な状況を提示していただけますか?

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

これは、モデルデータのほとんどをフォームから取得する場合に便利ですが、いくつかの null=False フィールドにフォーム以外のデータを入れる必要がある場合に便利です。

で保存 commit=False で保存すると、モデルオブジェクトが得られるので、追加データを追加して保存することができます。

これはその状況の良い例です。