2012-08-13 102 views
-2

我有一個代碼問題。有什麼不對?'NoneType'對象沒有屬性'tttttt'

class test(osv.osv): 
    _name = "test"  
    _description = "uuuu"  

    def tttttt(): 
     return "testtt" 

test() 

instance = test() 
print (instance.tttttt()) 
+1

另外,爲什麼不'def tttttt(self):'? – 2012-08-13 11:56:19

+1

爲什麼名稱如此難讀?也許這是你的問題?嘗試使用更簡單的名字。 – 2012-08-13 13:01:48

+0

我特別提出了一個簡單的例子來簡化代碼。通常情況下,這是一個百線我試圖調試... – user1571627 2012-08-13 13:12:13

回答

0

有趣的問題。經過一番挖掘,似乎OpenERP框架已經用對象創建機制做了一些奇怪的事情。對於BaseModel的子類,如osv.osv和您的班級,__new__() method只在該池中註冊該班級並返回None

您可以通過稍微修改打印語句來確認。

instance = test() 
print instance is None # will print True. 

據我所知,OpenERP模型類不能在服務器進程之外運行。如果你正在嘗試編寫單元測試或其他東西,你必須編寫單獨的助手類並測試它們,或者使用YAML testing framework運行全面的集成測試。

有關測試幫助類的示例,請參閱我們的product_stockouts模塊。 sim_*類是單元測試的助手,它們都被product_stockouts.py中的模型類調用。

相關問題