2016-10-25 15 views
1

帳票保存機能と帳票確認を分ける必要があります。最初に内容を検証せずにフォームを保存する可能性を与えたいが、フォームが完成したら、データ検証を意味する確認ボタンをクリックしてデータベースに保存する必要があります。Django - 検証なしでフォームを保存するには?

私はcommit=Falseパラメータでそれを保存しようとすると、エラーが発生します。

The Table could not be created because the data didn't validate. 

UPDATE: 私がやったことはモデルにバリデーション削除し、ユーザーがフォームを終了したときに実行される検証と異なる関数を作成します。だから私はDjangoの言葉でこのフォームを検証していません。

しかし、誰かが別の解決策を得た場合は、答えてください。 forms.pyで

+2

データベースに書き込まない場合は、「フォームを保存する」とはどういう意味ですか?それをどこに保存しますか? – spectras

+1

フォームを記入した進捗状況をユーザーが保存できるようにしたいと思いますが、それは正しいでしょうか?彼らが後で戻ってそれを終えることができるように? – sytech

+0

@sytechはい、正確です。 – amonowy

答えて

0

、あなたはフィールドのコンストラクタに必要な= Falseのを通過し、すべてのフィールドが必要とされていないことを指定する必要があります。

例:

first_name = forms.CharField(max_length = 150, required=False)

+0

しかし、このフィールドは必須です。一時保存ではなく、最終保存に使用します。 – amonowy

+0

あなたのviews.pyコードを表示する –

0

私は同じ問題がありました。私は2つのテーブル使用していたになってしまった解決策:データベースがJSONをサポートしている場合は未確認データの

  • 1は確認データ

ため

  • 1(JSON形式のデータおよびブールフィールドis_confirmedが含まれています)データ型(たとえば、MySQL 5.7+)を使用すると、前のテーブルのみを使用できます。

    妥当性検証は必須フィールドだけでなく、ユーザーがdateフィールドに無効な日付を入力したとします。検証せずに保存すると、NULL(または0000-00-00)という名前でdbに保存されます。したがって、元の無効な値は失われます。

  • 関連する問題