我无法了解如何使用 get_by_id 从 Google App Engine Datastore 获取对象。这是模型
from google.appengine.ext import db
class Address(db.Model):
description = db.StringProperty(multiline=True)
latitude = db.FloatProperty()
longitdue = db.FloatProperty()
date = db.DateTimeProperty(auto_now_add=True)
我可以使用 gql 创建、放置和检索它们。
address = Address()
address.description = self.request.get('name')
address.latitude = float(self.request.get('latitude'))
address.longitude = float(self.request.get('longitude'))
address.put()
保存的地址具有以下值
>> address.key()
aglndWVzdGJvb2tyDQsSB0FkZHJlc3MYDQw
>> address.key().id()
14
我可以用钥匙找到他们
from google.appengine.ext import db
address = db.get('aglndWVzdGJvb2tyDQsSB0FkZHJlc3MYDQw')
但无法通过 id 找到它们
>> from google.appengine.ext import db
>> address = db.Model.get_by_id(14)
地址是无,当我尝试
>> Address.get_by_id(14)
AttributeError: type object 'Address' has no attribute 'get_by_id'
我如何通过 id 找到?
编辑:原来我是个白痴,并试图在一个名为 Address 的函数中找到一个地址模型。感谢您的回答,我已将布兰登标记为正确答案,因为他首先进入并证明它应该一切正常。