我有以下型号:
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传递给模板系统,以便我可以在网页中使用它们?感谢。
答案 0 :(得分:2)
模板代码没有区别,因为您仍然需要访问the id
instance-method of the key。
尝试改为:
{% for message in messages %}
{{ message.name }}
{{ message.key.id }}
<!-------- ^^^ -->
{% endfor %}
如果使用Jinja2模板(而不是Django模板),语法将是:
{% for message in messages %}
{{ message.name }}
{{ message.key().id() }}
<!-------- ^^^^^ -->
{% endfor %}