2012-04-26 28 views
5

Sau đây là mô hình cơ sở dữ liệu đơn giản tôi có:in id tổ chức mô hình appengine trong mẫu html

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

Bây giờ trong xử lý url, tôi gửi tất cả các ghi chú vào mẫu như sau:

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

trong mẫu tôi đang sử dụng động cơ jinja2 khuôn mẫu, tôi muốn các id của mỗi ghi chú được in, vì vậy mà tôi có thể nhúng một liên kết chỉnh sửa, phần nào như thế này:

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

Nhưng những rắc rối là, tôi không nhìn thấy bất cứ điều gì in, ở vị trí của note.key.id Theo các tài liệu trên herekey lớp đại diện cho một chìa khóa duy nhất cho một tổ chức cơ sở dữ liệu và điều này có một phương pháp id, một giá trị số của nó. cho một ghi chú duy nhất từ ​​bộ sưu tập ghi chú, tôi muốn ghi chú số id của ghi chú.

Nếu tôi sử dụng công cụ tô khuôn django tôi nhận được các giá trị {{ notes.key.id }} được in, nhưng với jinja2 tôi không thấy.

Tôi làm cách nào để thực hiện việc này?

Trả lời

11

Vâng thay thế dòng href như sau:

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

này sẽ là đủ.

+0

Tôi vừa thử nghiệm nó, trong trường hợp của mình, tôi phải điều chỉnh giải pháp của bạn như sau: '{{job.key.id()}}' (** khóa **, không * phím() *), sử dụng python 2,7, bình, jinjia2, ndb ... – firepol

Các vấn đề liên quan