Google App Engine用フレームワーク「Kay」でフォームのチェックボックスで複数選択

Google App Engine用フレームワーク「Kay」でフォームのチェックボックスで複数選択」より。

Google App EngineフレームワークKay」でフォームの複数選択をチェックボックスで行う方法。

Kay ドキュメント」の「18. kay.utils.forms モジュール リファレンス」に、MultiChoiceFieldをユーザに複数の選択肢を用意するフィールドとして説明されています。

このMultiChoiceFieldを使ってみます。

from kay.utils import forms
class MyForm(forms.Form):
foo = forms.MultiChoiceField(choices=[u'Python', u'Perl', u'PHP'])

そうすると、選択フィールドにselectタグを使った

<select multiple id="f_foo" name="foo">〜

というコードを出力します。

確かに複数選択できます。

ですが、複数の項目を選択するときはCtrlキーを押しながらクリックする必要があり、ちょっと使いにくい。

そこで、コントロールチェックボックスにします。

MultiChoiceFieldのキーワード引数widgetにforms.CheckboxGroupを指定します。

from kay.utils import forms
class MyForm(forms.Form):
bar = forms.MultiChoiceField(choices=[u'Python', u'Perl', u'PHP'],
widget=forms.CheckboxGroup)

こうすると、次のように出力します。

初期値の「select multiple」よりも使いやすくなったと思いますが、いかがでしょうか。