谷歌appengine数据存储的主键

    from google.appengine.ext import db
    from datetime import date    
    class Test(db.Model):
        title=db.StringProperty(required=True)
        tags=db.StringListProperty(required=True)

在Test类型的对象上显示一个打印

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

但key_id属性是无法通过title.key_id .also test.pk返回u'agRibG9nchILEgxhc2lzYWlkX3Rlc3QYAQw'有没有一种方法可以从google-appengine中的模型对象中获取我可以在urls中使用的漂亮的整数主键?


尝试:

yourkey = test.key().id()

并重新获得您的价值:

Test.get_by_id(ids = yourkey)

这是无效的解决方案,因为所有记录都有id()最好的是这样的:

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

记录可以有id()或name(),但必须有key()。

即使你所有的记录都有id(),它仍然是错误的,因为实体是通过ApplicationId,NamespaceId,ParentModel,Model和id或key来寻址的。 主键是所有的字段。

这意味着如果您使用命名空间或使用父级来保持事务的一致性,那么您可以拥有多个具有相同id()的实体 - 如果您对此不确定,请尝试避免使用id()。

链接地址: http://www.djcxy.com/p/57821.html

上一篇: primary key in google appengine datastore

下一篇: How to delete all datastore in Google App Engine?