2010-10-25 218 views
2

當我從一個類導入到另一個類時,出現問題。我有 在不同的模塊這些類:遞歸問題

crm.py

from CRMContactInformation import CRMContactInformation 

class CRM(rdb.Model): 
     """Set up crm table in the database""" 
     rdb.metadata(metadata) 
     rdb.tablename("crms") 

     id = Column("id", Integer, ForeignKey("screens.id"), 
primary_key=True) 
     screen_id = Column("screen_id", Integer,) 

     contactInformation = relationship(CRMContactInformation, 
userlist=False, backref="crms") 
     .... 

CRMContactInformation.py

from CRM import CRM 

class CRMContactInformation(rdb.Model): 
     """Set up crm contact information table in the database""" 
     rdb.metadata(metadata) 
     rdb.tablename("crm_contact_informations") 

     id = Column("id", Integer, ForeignKey(CRM.id), primary_key=True) 
     owner = Column("owner", String(50)) 
     ..... 

正如你所看到的,我有一個遞歸問題,因爲我在CRM進口 CRMContactInformation和CRMContactInformation中的CRM。我 這個錯誤或類似:

「AttributeError的:‘模塊’對象有沒有屬性」

我試圖改變進口導入的整個路徑。它也沒有工作 了。

有沒有什麼辦法可以使用元數據對象來訪問表的 屬性?或另一種方式來解決這個問題?

在此先感謝!

+3

你必須做你的類編譯時間的工作,而不是在對象施工時間? (例如,當你的類已經完全編譯時,在'__init__'中執行此操作) – 2010-10-25 15:30:22

+0

將'CRM.id'作爲字符串('crms.id')傳遞給'ForeignKey'如何? – 2010-10-25 15:50:12

回答

0

延遲進口:

class CRM(rdb.Model): 
     """Set up crm table in the database""" 
     rdb.metadata(metadata) 
     rdb.tablename("crms") 

     id = Column("id", Integer, ForeignKey("screens.id"), primary_key=True) 
     screen_id = Column("screen_id", Integer,) 

     .... 

from CRMContactInformation import CRMContactInformation 
CRM.contactInformation = relationship(CRMContactInformation, userlist=False, backref="crms") 
+0

它的工作原理,謝謝! – bribon 2010-10-25 17:28:36