フォームの扱いをどうしよう。

classを元にしたアプローチは、フォームに値を設定するのが面倒なことに気付いた。
さてどうしようか。
formは特別扱いでもいいかな。

...
<form name="searchForm" ...>
<input type="text" name="name"/>
<input type="checkbox" name="public"/>
<select name="job">
<option value=""></option>
</select>
</form>
...
template.forms["searchForm"].values = {"name":"aodag"}


問題になりそうなのは、select, radiobutton, checkbox。
selectには、オプションを渡さないといけない。
値とオプションを渡すとして、tupleを使う方法でいけるか。

template.forms["searchForm"].values = {"job":("1", {"1", "programmer", "2":"project manager"})}

radiobuttonはselectと同じ方法が使える。
checkboxはPythonからはboolで取り扱いたいところだ。
ただし、Webアプリケーションの扱いでは、値は任意の文字列で、チェックボタンのON, OFFは送信されるかされないか。
Trueじゃなくて、指定されてる任意の文字列の方が良いだろうか。
None, Falseでoff, それ以外でonだとどうだろう。
文字列が指定されている場合は、HTML側のvalueもその値にならないと気持ち悪い。
しかし、それだとoffにしたいときに、valueの設定ができない。
これも同じく、(on-off, value) のようにtupleを渡すようにすればできそうだ。

template.forms["searchForm"].values = {"public":(True, "on")}