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”始终为空。如何将实体 ID 传递给模板系统,以便我可以在网页中使用它们?谢谢。

4

1 回答 1

2

模板代码没有什么不同,因为您仍然需要访问keyid实例方法

请尝试:

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

如果您使用 Jinja2 模板(而不是 Django 模板),语法将是:

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