1

私は次のモデルを持っています:

class Messages(db.Model):
    name: db.StringProperty()
    ...

これは、Google App Engineのデータストアによって提供されるidフィールドを一意のキーとして使用し、次の方法で取得できます。

message = Message()
...
message.put()
...
id = message.key().id()

ここで、Djangoテンプレートシステムを使用してメッセージを一覧表示したいと思います。

messages = db.Messages.all()
self.response.out.write(template.render('page.html', 'messages': messages))

そして「page.html」では:

{% for message in messages %}
   {{message.name}}
   {{message.id}}
   ....
{% endfor %}

ただし、上記のループでは、「message.id」は常に空です。Webページで使用できるようにエンティティIDをテンプレートシステムに渡すにはどうすればよいですか?ありがとう。

4

1 に答える 1

2

テンプレートコードは、キーのidインスタンスメソッドにアクセスする必要があるという点で違いはありません。

代わりに試してください:

{% for message in messages %}
   {{ message.name }}
   {{ message.key.id }}
   <!-------- ^^^ -->
{% endfor %}

(Djangoテンプレートの代わりに)Jinja2テンプレートを使用する場合、構文は次のようになります。

{% for message in messages %}
   {{ message.name }}
   {{ message.key().id() }}
   <!-------- ^^^^^ -->
{% endfor %}
于 2013-01-22T02:04:47.187 に答える