2009年12月2日水曜日

Django HttpRequest の処理に嵌る

 条件検索を付加しようとして、check box で選択条件を入力し POST で送るところまでは出来たのだが、view に渡される request がうまく処理できない。
 aptana の変数表示を見ると、どう見ても値がリストの辞書なのだが、辞書のつもりで扱うとうまくいかない。値を取り出そうとするとリストの最後の要素しか取り出せない。

 よくよく見ると型が 'Querydict' となっている。フツーの辞書型じゃないの?と調べてみると...。
QueryDict オブジェクト

HttpRequest オブジェクト内では、 GET と POST 属性は django.http.QueryDict のインスタンスです。 QueryDict は辞書ライクなクラスで、同じキーに対して複数の値を取り得るようにカスタマイズされています。これは、 HTML のフォーム要素には、例えば <select multiple="multiple"> のように、同じキーに対して複数の値を渡すものがあるからです。
 ですと。「ライク」ってことは似て非なるものってことね。

 結局 getlistを使ってリストの形で引き出すことに成功。

 なんとか動いた。

 あとはブラッシュアップとバグ出しか。

 どこまで飽きずにモチベーションを維持できるか...

 

0 件のコメント:

コメントを投稿