在html模板中打印appengine模型实体id

时间:2012-04-26 19:51:26

标签: python google-app-engine jinja2 webapp2

以下是我的简单数据库模型:

class Notes(db.Model):
  text = db.StringProperty(multiline=True)
  date = db.DateTimeProperty(auto_now_add=True)

现在在url处理程序中,我将所有注释发送到模板,如下所示:

class MainPage(webapp2.RequestHandler):
  def get(self):
    notes = Notes.all()
    self.render_template("index.html", {'notes':notes})

在我使用jinja2模板引擎的模板中,我想要打印每个笔记的id,这样我就可以嵌入一个编辑链接,有点像这样:

{% for note in notes %}
<p>  
 {{ note.text }} <br>
 {{ note.date }} <br>
 (<a href ="edit/{{note.key.id}}">edit </a>)
{% endfor %}

但麻烦的是,我没有看到任何印刷品代替note.key.id 根据{{​​3}} key上的文档,类代表数据库实体的唯一键,它有一个方法id,它是一个数值。对于笔记集合中的单个笔记,我想要笔记的id

如果我使用django模板引擎,我会打印出值{{ notes.key.id }},但是jinja2我看不到它。

我该怎么做?

1 个答案:

答案 0 :(得分:11)

用以下内容替换href行:

(<a href ="edit/{{note.key().id()}}">edit </a>)

这就足够了。