gpt4 book ai didi

google-app-engine - Google App Engine Datastore 中模型类的 get_by_id 方法

转载 作者:太空宇宙 更新时间:2023-11-03 15:22:14 25 4
gpt4 key购买 nike

我无法弄清楚如何使用 get_by_id 从 Google App Engine 数据存储区获取对象。这是模型

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

我可以用 key 找到他们

from google.appengine.ext import db
address = db.get('aglndWVzdGJvb2tyDQsSB0FkZHJlc3MYDQw')

但是通过id找不到他们

>> from google.appengine.ext import db
>> address = db.Model.get_by_id(14)

地址是None,当我尝试

>> Address.get_by_id(14)
AttributeError: type object 'Address' has no attribute 'get_by_id'

如何通过id查找?

编辑:事实证明我是个白痴,并试图在一个名为 Address 的函数中找到一个地址模型。感谢您的回答,我已将 Brandon 标记为正确答案,因为他首先进入并证明它应该一切正常。

最佳答案

我刚刚在 shell.appspot.com 上试过了它似乎工作正常:

Google Apphosting/1.0
Python 2.5.2 (r252:60911, Feb 25 2009, 11:04:42)
[GCC 4.1.0]

>>> class Address(db.Model):
description = db.StringProperty(multiline=True)
latitude = db.FloatProperty()
longitdue = db.FloatProperty()
date = db.DateTimeProperty(auto_now_add=True)

>>> addy = Address()
>>> addyput = addy.put()
>>> addyput.id()
136522L
>>> Address.get_by_id(136522)
<__main__.Address object at 0xa6b33ae3bf436250>

关于google-app-engine - Google App Engine Datastore 中模型类的 get_by_id 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/649284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com