2010-04-03 66 views
2

我在App Engine(Python)的ReferencePropertys中遇到了一些問題。Google App Engine中的自引用ReferenceProperty

爲了一點樂趣,我試圖建立一個文件夾/文件系統的模型,但是無法獲取文件夾來引用文件夾。

我第一次嘗試是這樣的:

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的:「文件夾」對象有沒有屬性「的文件夾'

我很難過。有沒有人有這方面的經驗,或解決這個問題?

在此先感謝。

回答

9

這正是SelfReferenceProperty是。

+0

始終是閱讀文檔的參數。謝謝! – 2010-04-03 15:12:21

+0

我忘了這件事。良好的工作:) – 2010-04-03 15:43:45

0

您可以創建一個單獨的模型兩個,名字類似FolderChild鏈接:

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