テニスサークルのメンバーエントリアプリがやっと完成した。Djangoテンプレートでのリストの処理は、結局、縦軸のイベントと横軸のメンバの参加可否を10×10の固定にして表示用の2次元配列をPython側で作成し、Djangoテンプレートに渡すことにした。
本当は、2重Loopで横軸も回したかったが、Djangoテンプレートで配列の添字が使えそうになかったため、このような方法となった。
{% for s in slists %}
{{ s.0|escape }} {{ s.1|escape }} {{ s.2|escape }} {{ s.3|escape }} ・・・ {{ s.10|escape }}
{% endfor %}
※"s.0"にイベント名、"s.1"~"s.10"に参加可否のマーク(○×△)をセット
ともあれ、当初予定していた機能は達成したので、良しとしよう。
今回のアプリ作成で、以下のことを習得できた。
①データストアへのアクセス
②キーをつかったデータの検索と更新
③Pythonでの二次元配列の使用
④Djangoテンプレートでの配列参照
⑤GetとPostの違いと使い分け
⑥JavascriptのsubmitでのIEとFirefoxの動作の違いの対処
④のDjangoテンプレートでの配列参照は、師匠のアドバイスをもらってわかったことで、これがなければ、行き詰っていた。(師匠に感謝)
⑥は、JavascriptのsubmitがIEだと動作するのに、Firefoxで動作しない現象が発生したが、以下のように変更したらうまくいった。submitの仕様の違いはネット上でもたくさん事例があり注意が必要というのがわかった。
[変更前]
var form = document.getElementById("MyForm");
form.submit();
[変更後]
document.forms[0].submit();
完成した画面は以下の通り。
0 件のコメント:
コメントを投稿