djangoの初学者です。宜しくお願いします。
現在ユーザーフォームに入力された内容をviews.pyでデータベースに保存する関数の組み立てを勉強しているところです。
i(=変数),form(=models.py & forms.pyで定義したform要素の集合)
として、模範解答としては、
その1
i = form.save(commit=False) #処理前にsaveすると改変作業が下の行にあるから、saveさせずにform要素を入れ込むために(commit=False)をつける <処理するコード群(フォームに空欄があったら何か文字列を補うなど)> i.save # ここでDBに保存処理
ということとして理解したのですが、下記のコードではダメなのか、なぜダメのか明確に分からないなと思いました。
その2
i = form #(commit=False)をつけずにform要素をinstanceに流しておき、下記の処理を行うコードをつければDB保存前にしょりできるだろうと考えた。 <処理するコード群(フォームに空欄があったら何か文字列を補うなど)> i.save # ここではじめて.saveに関する処理をコードに明記して、DBに保存処理
その2では、なぜだめなのか、わざわざcommit=Falseをつけなければならないのか理由が明確に分からない状態です。ご解説が可能の方がいらっしゃれば、お伺いできますと大変ありがたいです。お願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/19 00:49