私はdjangoプロジェクトを持っており、ページの1つに、外部キーの値を追加できるように設定commit=False
したフォームがあります。form.save
そうすると、フォームの残りの値は保存されません。
基本的に、フォームの保存方法に応じて 2 つのエラーが発生します。
最初は私が使用するときですsave.(commit=False)
コード:
form = RecipeForm()
form = form.save(commit=False)
form.original_cookbook = request.user.cookbooks.all()[0]
form.save()
エラー:
IntegrityError at /cookbook/createrecipe/
(1048, "Column 'ingredients' cannot be null")
Request Method: POST
しかし、食材フィールドが null ではないことはわかっています。
2 番目のエラーは、commit を使用せず、代わりに初期値を設定した場合です。
コード:
form = RecipeForm(initial = {'original_cookbook' : request.user.cookbooks.all()[0]})
form.save()
エラー:
IntegrityError at /cookbook/createrecipe/
(1048, "Column 'original_cookbook_id' cannot be null")
Request Method: POST
これらの方法のどちらも機能しないように見える理由は何ですか? AJAX経由でフォームを送信しようとしていることを知っているように...