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(key_id=1, title='ashu_saved', tags=['db'])
但是title.key_id
无法访问key_id属性。test.pk
返回u'agRibG9nchILEgxhc2lzYWlkX3Rlc3QYAQw'
有没有办法获得可以在网址中使用的漂亮的整数主键,来自google-appengine中的模型对象?
答案 0 :(得分:4)
尝试:
yourkey = test.key().id()
并获得你的价值:
Test.get_by_id(ids = yourkey)
答案 1 :(得分:0)
这是无效的解决方案,因为所有记录都有id(),最好是这个:
key = entity.key()
Model.get(key)
记录可以有id()或name()但必须有key()。
即使你的所有记录都有id(),它仍然是错误的,因为实体由ApplicationId,NamespaceId,ParentModel,Model以及id或key来寻址。主要关键是所有领域。
这意味着如果您使用命名空间或使用父级来保持事务一致,您可以拥有许多具有相同id()的实体 - 如果您不确定,请尽量避免使用id()。