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」よりも使いやすくなったと思いますが、いかがでしょうか。