フォームの扱いをどうしよう。
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")}