【问题标题】:Google app engine and django templates: passing entity ids to the template engineGoogle 应用引擎和 django 模板:将实体 ID 传递给模板引擎
【发布时间】:2013-01-23 00:52:14
【问题描述】:

我有以下型号:

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

使用Google App Engine的datastore提供的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 传递给模板系统,以便我可以在网页中使用它们?谢谢。

【问题讨论】:

    标签: django google-app-engine


    【解决方案1】:

    模板代码没有什么不同,您仍然需要访问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 %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      相关资源
      最近更新 更多