Kayの確認画面の機能を試してみた。

Google App Engine用フレームワーク Kay のフォームに追加された確認画面の機能を試してみた。

Formのコンストラクタで「use_confirmation=True」を指定すると、確認画面を使用できるようになる。

#Formのコンストラクタで「use_confirmation=True」を指定する。
form = CommentForm(use_confirmation=True)

入力画面のsubmitボタンの文字が「確認画面へ」となり、確認画面のsubmitボタンが「保存」となるなど、芸が細かい。

次に、確認画面で保存ボタンが押されたかを調べるには、Form.is_confirmed属性を調べる。

if form.is_confirmed:
    #確認画面で保存ボタンが押されたとき
else:
    #確認画面を表示

myapp/views.py

def index(request):
    #Formのコンストラクタで「use_confirmation=True」を指定する。
    form = CommentForm(use_confirmation=True)
    if request.method == "POST" and form.validate(request.form):
        if form.is_confirmed:
            #確認画面で保存ボタンが押された
            form.save()
            return redirect(url_for('myapp/index'))
        else:
            #確認画面を表示
            form.set_confirmed()
    return render_to_response('myapp/index.html',
                              {'form': form.as_widget()})

myapp/template/index.html

{{form()|safe}}

「{{form()|safe}}」でフォームを表示しているときは、問題なく機能する。

テンプレートでフォームを表示するとき、{% call form() %} ~ {% endcall %} でフォームをカスタマイズしていると、確認画面でも入力部品が表示される。(確認画面の機能は有効である。)
確認画面用の表示も用意する必要がある。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください