首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GAE Datastore Stub问题

GAE Datastore Stub问题
EN

Stack Overflow用户
提问于 2013-11-21 12:38:54
回答 1查看 62关注 0票数 1

我在上为Django应用程序编写一些单元测试。测试通过调用init_datastore_v3_stub来使用数据存储存根,并在其中存储一些测试数据。对于简单的模型,这很好,但是当我存储作为模型B子类的模型A时,只有当我以A的形式查询模型时,我才会得到结果。示例代码:

代码语言:javascript
复制
class A(db.polymodel.PolyModel):
    ...
class B(A):
    ....
B().put()

print A.all().count() # prints 1
print B.all().count() # prints 0

请注意,在生产中,两条生产线都会打印1。有什么建议吗?

更新:问题似乎与数据库本身无关,而与PolyModel实现有关。我注意到B._entity并不像它应该包含的那样包含'class'值,而是包含'_class'。看上去:

代码语言:javascript
复制
print B._entity # prints {... '_class'=[u'A', u'B'] ...}

这就解释了我得到的结果。当我手动设置'class'值时,一切都正常:

代码语言:javascript
复制
b = B()
b._entity['class'] = b._entity['_class']
b.put()

print B.all().count() # prints 1

当我发现问题的原因时,我将继续在这里进行调查和更新。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-21 16:10:29

我自己找到了解决方案,这是我的代码中的一个错误,在这个错误中,我意外地将每个属性的name属性重写为字段的类成员名,这是PolyModelclass属性的_class。这是在为测试创建模拟模型的过程中发生的,这就是为什么我在生产中没有这个问题。

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

https://stackoverflow.com/questions/20121230

复制
相关文章

相似问题

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