A continuación se presenta el modelo de base de datos simple que tengo:imprimir el modelo appengine entidad id en la plantilla HTML
class Notes(db.Model):
text = db.StringProperty(multiline=True)
date = db.DateTimeProperty(auto_now_add=True)
Ahora en el controlador de URL, le envío todas las notas a la plantilla de la siguiente manera:
class MainPage(webapp2.RequestHandler):
def get(self):
notes = Notes.all()
self.render_template("index.html", {'notes':notes})
En la plantilla que estoy usando jinja2 motor de plantillas, quiero que el id
de cada una de las notas que desea imprimir, de modo que pueda incrustar un enlace de edición, algo como esto:
{% for note in notes %}
<p>
{{ note.text }} <br>
{{ note.date }} <br>
(<a href ="edit/{{note.key.id}}">edit </a>)
{% endfor %}
Pero el problema es que no veo nada impreso, en lugar de note.key.id
De acuerdo con la documentación sobre herekey
clase representa una clave única para una entidad de base de datos y esto tiene un método id
, es un valor numérico. para una sola nota de la colección de notas, quiero el id
de la nota.
Si uso el motor de plantillas django obtengo los valores {{ notes.key.id }}
impresos, pero con jinja2
no lo veo.
¿Cómo puedo hacer esto?
Acabo de probarlo, en mi caso tuve que adaptar su solución de la siguiente manera: '{{job.key.id()}}' (** key **, not * key() *), usando python 2.7, matraz, jinjia2, ndb ... – firepol