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

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 %} でフォームをカスタマイズしていると、確認画面でも入力部品が表示される。(確認画面の機能は有効である。)

確認画面用の表示も用意する必要がある。