複数モデルの連携処理 (5/6)
作成:2010-01-08 11:02
更新:2010-05-10 22:02
更新:2010-05-10 22:02
■messageのビューを作る
続いて、MessageDataの作成と一覧表示をする、<B[message.htmlテンプレートを作成しましょう。ソースコードは、以下にあげるリストのようになります。
ここでも、同様に{% for data in datas %}で繰り返し処理をしています。これでMessageDataのデータを書き出していますが、よく見ると、{{data.member.name}}というように、MessageDataのmemberプロパティのnameを出力していますね。memberには、MemberDataインスタンスが保管されていますから、このようにして、このMessageDataに関連付けられているMemberDataの値を取り出し処理することができるわけです。参照を使うと、シームレスに関連するモデルを扱えることがわかりますね。
ここでも、同様に{% for data in datas %}で繰り返し処理をしています。これでMessageDataのデータを書き出していますが、よく見ると、{{data.member.name}}というように、MessageDataのmemberプロパティのnameを出力していますね。memberには、MemberDataインスタンスが保管されていますから、このようにして、このMessageDataに関連付けられているMemberDataの値を取り出し処理することができるわけです。参照を使うと、シームレスに関連するモデルを扱えることがわかりますね。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8" />
<title>Message</title>
</head>
<body>
<h1>Message Page</h1>
<form method="post" action="/message">
<table>
<tr>
<th>名前:</th>
<td>{{member.name}}({{member.user.nickname}})</td>
</tr>
<tr>
<th>メッセージ:</th>
<td><textarea name="message"></textarea></td>
</tr>
<tr><th></th>
<td><input type="submit" value="送信" /></td></tr>
</table>
</form>
<hr />
<table border="1" width="500px">
<tr>
<th width="50px">ID</th>
<th width="300px">メッセージ</th>
<th width="150px">メンバー</th>
</tr>
{% for data in datas %}
<tr>
<td>{{data.key.id}}</td>
<td>{{data.message}}<br />
({{data.time}})</td>
<td>{{data.member.name}}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
※関連コンテンツ
「PythonによるGoogle App Engine(GAE)プログラミング入門」に戻る