基于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',但子节点不是。浏览器没有输出错误(调试已打开),并且启动器的日志中没有任何内容用于我的应用程序。
这可能吗?
答案 0 :(得分:0)
说我在这里没有改变是骗人的谎言。我实际上必须将“父”属性更改为“parent_ref”。在我从SelfReferenceProperty更改为ReferenceProperty(Parent,collection_name ='children')之前,引用也没有按预期工作
但最终结果是多态自引用确实有效。