2016-11-25 3 views
0

In Python Konsole (jupyter) ich eine Python-Bibliothek in Form verwenden:Anruf Python Objekt - odoo 9

class SomeClass(object) 
    def __init__(self, arg1, arg2): 
     ... 
    def fct1(self): 
     ... 
    return something 

Und ich bekomme kein Problem, ein Objekt mit dem Erstellen:

x = SomeClass(arg1,arg2) 

würde ich gerne diese Methoden in Odoo verwenden. Ich habe versucht, die folgenden:

class SomeClass(**models.Model**) 
    def **connect**(self, arg1, arg2): 
     ... 
    def fct1(self): 
     ... 
    return something 

Ersetzen „Objekt“ mit „-Modell, Models“ es als odoo Klasse haben + init mit einem Methodennamen umbenennen.

Aber

x = connect(arg1,arg2) 

kehrt:

Nameerror: global Name 'connect' ist nicht

definiert Wie würde ich meine Python-Bibliothek verwenden in Odoo (neue API)?

TIA

UPDATE:

Ich habe auch versucht

x= self.connect(arg1,arg2) or x=SomeClass.connect(arg1,arg2)

Aufruf aber es zurückgeben "None", wenn ich "print x". Ich denke, eine Instanz nicht

erstellt
+0

wenn Sie möchten, Der Name ** connect ** Sie sollten den Klassennamen als ** connect ** verwenden und '__init__' ist eine Konstruktorfunktion –

+0

tnx for rply. Ich fürchte, ich verstehe deine Antwort nicht. Ich habe meine Frage aktualisiert, vielleicht ist es klarer. – ygol

Antwort

0

Dank an zbik für die Antwort ein:

myclass.py in Ordnern myaddons

class MyClass: 
    def __init__(self, name): 
     self.name = name 
    def _test(self,a,b): 
     return a+b 

in anderer Odoo Klasse:

from openerp.addons.myaddons.myclass import MyClass 
... 
x = MyClass('Hello') 
y = x._test(2,3) 
... 
print x.name 
> Hello 
print y 
> 5