【问题标题】:Google App Engine : PolyModel + SelfReferencePropertyGoogle App Engine:Poly 模型 + 自引用属性
【发布时间】:2010-04-17 14:37:06
【问题描述】:

基于 PolyModel 的类可以用作 SelfReferenceProperty 吗?

我有以下代码:

class BaseClass(polymodel.PolyModel):
    attribute1 = db.IntegerProperty()
    attribute2 = db.StringProperty()

class ParentClass(BaseClass):
    attribute3 = db.StringProperty()

class ChildClass(BaseClass):
    parent = db.SelfReferenceProperty(collection_name = 'children')


p = ParentClass()
p.attribute1 = 1
p.attribute2 = "Parent Description"
p.attribute3 = "Parent additional data"
p.put()

c = ChildClass()
c.attribute1 = 5
c.attribute2 = "Child Description"
c.parent = p.key()
c.put()

我执行此代码并通过开发服务器的管理界面检查数据存储。 父实例保存到数据存储 class= 'BaseClass,ParentClass',但子实例没有。浏览器没有错误输出(调试已打开),我的应用程序的启动器日志中也没有任何内容。

这可能吗?

【问题讨论】:

  • 奇怪——无需更改任何其他代码,现在它可以工作了……一个无法解释的谜。

标签: python google-app-engine polymodel


【解决方案1】:

说我在这里什么都没做是骗人的。我实际上不得不将“parent”属性更改为“parent_ref”。此外,在我从 SelfReferenceProperty 更改为 ReferenceProperty(Parent, collection_name = 'children') 之前,引用并没有像我预期的那样工作

但最终结果是多态自引用确实有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多