【问题标题】:Self-referential ReferenceProperty in Google App EngineGoogle App Engine 中的自引用 ReferenceProperty
【发布时间】:2011-02-04 00:24:54
【问题描述】:

我在使用 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:“文件夹”对象没有属性“文件夹”

我有点难过。有没有人有这方面的经验,或者解决这个问题的方法?

提前致谢。

【问题讨论】:

    标签: python google-app-engine


    【解决方案1】:

    这正是SelfReferenceProperty 的用途。

    【讨论】:

      【解决方案2】:

      您可以创建一个单独的模型来链接两者,命名为 FolderChild:

      class FolderChild(db.Model):
          parent = db.ReferenceProperty(Folder)
          child = db.ReferenceProperty(Folder, collection_name="children")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-24
        • 1970-01-01
        • 2012-04-07
        • 1970-01-01
        • 2010-10-25
        • 2011-03-03
        • 2011-04-04
        • 2011-03-27
        相关资源
        最近更新 更多