首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Appengine对象没有属性'_projection‘

Appengine对象没有属性'_projection‘
EN

Stack Overflow用户
提问于 2018-04-01 18:45:30
回答 1查看 225关注 0票数 0

我用这个

代码语言:javascript
运行
复制
class Ad(db.Model): #change to ndb.model 
    ndb_usr = ndb.KeyProperty()

但是当我尝试这个if ad.ndb_usr:时,我会得到错误。为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-02 04:42:35

您似乎忘了实际应用注释:#change to ndb.model中提到的更改。

因此,您试图在ndb.KeyProperty()对象中引用ndb.Model属性(很可能是特定于ndb.Model对象)。由于这两个类非常相似,但不完全相同,那么一个类中的一些代码很有可能不会立即失败,并且在调用另一个类的实例时(可能很难预测路径)会取得相当大的进展。

我尝试用我现有的代码(只将模型从ndb.Model更改为db.Model)进行重新配置,并得到了类似的错误,但错误并不完全相同(嗯,不同的代码):

代码语言:javascript
运行
复制
AttributeError: type object 'ApartCILabel' has no attribute 'query'

代码语言:javascript
运行
复制
AttributeError: type object 'ApartCILabel' has no attribute '_get_kind'

例如,最后一个方法很容易解释-- ndb.Model有一个_get_kind方法,db.Model没有。

代码语言:javascript
运行
复制
class MyModel(db.Model):             class MyModel(ndb.Model):

@classmethod                         @classmethod
def kind(cls):                       def _get_kind(cls): 
    return 'Foo'                         return 'Foo'

更新:

我看到数据库到NDB客户端库迁移迁移指南已经存在,很可能是比上面提到的(旧的)备忘单更好的参考。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49601466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档