gpt4 book ai didi

python - Google App Engine 中的 KindError

转载 作者:太空宇宙 更新时间:2023-11-04 06:28:29 25 4
gpt4 key购买 nike

我在 GAE 中定义了一个简单的类来保存这样的用户配置文件数据:

class User(db.Model):
email = db.EmailProperty()
role = db.StringProperty(default=roles.USER)
first_name = db.StringProperty()
last_name = db.StringProperty()
...

我使用内存缓存来保存 session 信息。内存缓存数据如下所示 { 'key': 'agpjYW5kaXJhdGVzcgoLEgRVc2VyGCMM'}。我从 cookie 中获取 session_id 值。当我尝试像这样获取链接到该 cookie 的用户信息时:

session_id = request['session_id']
data = memcache.get(session_id)
user = User.get(data['key'])

我得到 KindError 异常:

KindError: Kind 'User' is not a subclass of kind 'User'

我知道这个用户存在,内存缓存存在。用户类在我的项目中只定义了一次。为什么会出现此错误,我该如何让它工作?

更新:我尝试使用 db.get() 而不是 User.get() 并且成功了。那么,可能存在什么问题?

最佳答案

Model.get() 会检查提供的 key 是否属于正确的类型,如 documentation 中所定义的那样.如果类型不正确,它将抛出一个 KindError

db.get() 不进行任何类型检查,因此如果提供的值存在于数据存储中,则会成功获取它,但不一定会返回用户实体。

因此您需要检查内存缓存中的键是否实际上是User 类型。您确定它在某个时候没有被其他模型的 key 覆盖吗?

关于python - Google App Engine 中的 KindError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5620387/

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