フォームセットをセッションに保存する方法はありますか?
私のシナリオはこんな感じです。ユーザーデータを入力してユーザー証明書をアップロードするためのフォームがあります。次のページ([次へ]をクリックしてフォーム)に、プロフェッショナルの詳細を入力するためのフォームがあります。
フォームセットを使用して生成されるフォームの最大数を制限することは可能ですか?
フォームセットをセッションに保存する方法はありますか?
私のシナリオはこんな感じです。ユーザーデータを入力してユーザー証明書をアップロードするためのフォームがあります。次のページ([次へ]をクリックしてフォーム)に、プロフェッショナルの詳細を入力するためのフォームがあります。
フォームセットを使用して生成されるフォームの最大数を制限することは可能ですか?
私があなたの質問を正しく理解していれば、セッションで from の状態を保存する方法、そして Django 1.4 以降では、実際に箱から出してそれを行う方法が付属しています。
https://docs.djangoproject.com/en/dev/ref/contrib/formtools/form-wizard/
フォームを複数のセクションに分割し、ユーザーが個別に入力できるようにすることができます。ユーザーがいずれかのセクションに入力すると、次のページに移動し、その時点でフォームの状態がセッションに保存されます。すべてのページがいっぱいになると、すべてをデータベースに保存できます。
さらに、あるページから別のページに移動するときに、次のページにあるはずのロジックを追加します。
最初のページで、ユーザーがアップロードしたいコンテンツの種類を尋ねるウィザードがある画像。次に、2 番目のページに移動すると、最初のページからの回答に応じて、適切なアップロード フィールド (ビデオ、音楽、またはグラフィックのフィールド) が表示されます。
私は FormWizard と答えたでしょうが、それを使用したくない場合は、単純に 2 つのフォームを作成できます。ユーザーが最初のフォームを送信すると、それをセッションにピクルしてから、2 番目のフォームを生成します。彼が戻るリンクをクリックすると、保存されたデータをアンピクルし、フォームに事前入力します。
def submitFirstForm(request):
data = request.POST['data']
import cPickle
request.session['data'] = cPickle.dumps(data)
...
def backBtn(request):
import cPickle
data = cPickle.loads(request.session['page'])
form = DataForm(data)
...