2010-11-21 29 views
6
from google.appengine.ext import db 
    from datetime import date  
    class Test(db.Model): 
     title=db.StringProperty(required=True) 
     tags=db.StringListProperty(required=True) 

một bản in trên các loại thử nghiệm của đối tượng cho thấykhóa chính trong google appengine kho dữ liệu

Test(key_id=1, title='ashu_saved', tags=['db']) 

nhưng thuộc tính KEY_ID là không accesible bởi title.key_id .also test.pk lợi nhuận u'agRibG9nchILEgxhc2lzYWlkX3Rlc3QYAQw' là có một cách để có được độc đáo tìm kiếm các phím số nguyên chính mà tôi có thể sử dụng trong các url, từ các đối tượng mô hình trong google-appengine?

Trả lời

4

Hãy thử với:

yourkey = test.key().id() 

và để có được giá trị của bạn trở lại:

Test.get_by_id(ids = yourkey) 
+0

và làm cách nào tôi có thể tìm nạp lại các giá trị bằng id này? –

0

Đó là giải pháp không hợp lệ vì tất cả các kỷ lục có id() là tốt nhất là thế này:

key = entity.key() 
Model.get(key) 

Bản ghi có thể có id() hoặc name() nhưng phải có khóa().

Ngay cả tất cả hồ sơ của bạn đều có id() nó vẫn sai vì thực thể được giải quyết bởi ApplicationId, NamespaceId, ParentModel, Model và hơn id hoặc khóa. PRIMARY key là tất cả các trường đó. Nó có nghĩa là bạn có thể có nhiều thực thể với cùng một id() nếu bạn sử dụng không gian tên hoặc sử dụng cha mẹ để giữ cho các giao dịch nhất quán - hãy thử tránh id() sử dụng nếu bạn không chắc chắn về nó.

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