我在App Engine(Python)中使用ReferencePropertys时遇到了一些麻烦。
为了一点乐趣,我正在尝试建模文件夹/文件系统,但无法让文件夹引用文件夹。
我的第一次尝试是:
class Folder(db.Model):
id = db.StringProperty()
name = db.StringProperty()
created = db.DateTimeProperty(auto_now_add=True)
folder = db.ReferenceProperty(Folder, collection_name="folders")
但由于尝试定义“文件夹”时未定义“文件夹”,因此失败。
我也尝试在“文件夹”的主声明之外定义“文件夹”,如下所示:
class Folder(db.Model):
id = db.StringProperty()
name = db.StringProperty()
created = db.DateTimeProperty(auto_now_add=True)
Folder.folder = db.ReferenceProperty(Folder, collection_name="folders")
但是失败了: AttributeError:'Folder'对象没有属性'folders'
我有点难过。有没有人有这方面的经验,或解决这个问题?
提前致谢。
答案 0 :(得分:9)
这正是SelfReferenceProperty的用途。
答案 1 :(得分:0)
您可以创建一个单独的模型来链接这两个模型,名为FolderChild:
class FolderChild(db.Model):
parent = db.ReferenceProperty(Folder)
child = db.ReferenceProperty(Folder, collection_name="children")