そのコードに問題があります。何が悪いの?
class test(osv.osv):
_name = "test"
_description = "uuuu"
def tttttt():
return "testtt"
test()
instance = test()
print (instance.tttttt())
興味深い質問です。掘り下げた後、OpenERP フレームワークはオブジェクト作成メカニズムで奇妙なことを行ったようです。BaseModel
likeosv.osv
および your クラスのサブクラスの場合、__new__()
メソッドはそのクラスをプールに登録し、 を返しますNone
。
これは、print ステートメントを少し変更することで確認できます。
instance = test()
print instance is None # will print True.
私の知る限り、OpenERP モデル クラスはサーバー プロセスの外では実行できません。単体テストなどを作成しようとしている場合は、別のヘルパー クラスを作成してテストするか、YAML テスト フレームワークで本格的な統合テストを実行する必要があります。
ヘルパー クラスのテストの例については、product_stockouts
モジュールを参照してください。sim_*
クラスは単体テストのヘルパーであり、それらはすべて のモデル クラスによって呼び出されますproduct_stockouts.py
。