0

フォームが送信されてサーバーに保存される前に、フォームの概要をユーザーに表示しようとしています。

そのフォーム上index.htmlとその中にフォームがあり、次の入力ボタンがあります。

<input type="submit" value="Show summary" name="summary"/>

ページにはsummary.html、ダミー フォーム内に別の入力ボタンがあります。この入力ボタンを使用して、フォーム データを保存します。

<input type="submit" value="Save to DB" name="save_db" />

my のメソッドのコード スニペットを次に示しますviews

def index(request):
    form = JobForm(request.POST or None)
    if request.method == 'POST':
        if  form.is_valid():
            return summary(request)

    return render_to_response('index.html', {'form': form}, context_instance=RequestContext(request))

def summary(request):
    if request.method == 'POST':
        save_to_db(request) # The problem here is that this is a new request. I lost the previous request with all the data
        return render_to_response('thanks.html', context_instance=RequestContext(request))
    xml = getxml(request) # form data is serialized
    return render_to_response('summary.html', {'xml': xml}, context_instance=RequestContext(request))

上記から、フォームデータの概要を取得できます。ただし、インライン コメントが示唆するように、[DB に保存] 送信ボタンをクリックすると、すべてのフォーム データを含む以前のリクエストが失われます。

私が調べSessionsたところ、上記の適切な方法が見つかりませんでした。requestまた、をパラメータとして概要ページに渡そうとしました。ただし、これは正しい方法ではないと思います。

ご意見をお待ちしております。

ありがとう。

4

1 に答える 1

0

Django Form Previewを試しましたか? それはまさにあなたが探しているようです:

Django には、次のワークフローを自動化するのに役立つオプションの「フォーム プレビュー」アプリケーションが付属しています。フォーム送信のプレビューを強制するには、短い Python クラスを記述するだけです。

乾杯!

于 2013-09-13T02:24:31.953 に答える