libro
www.tuyano.com
PythonによるGoogle App Engine(GAE)プログラミング入門

複数モデルの連携処理 (5/6)

作成:2010-01-08 11: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の値を取り出し処理することができるわけです。参照を使うと、シームレスに関連するモデルを扱えることがわかりますね。

※プログラムリストが表示されない場合

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)プログラミング入門」に戻る