2016-06-22 10 views
0

Ich habe Objektklasse und ich muss das Modell document.directory in dieser Klasse durchsuchen. Ich habe es versucht.Odoo 8 - Durchsuchen Sie ein Modell in Objektklasse

class node_database(object): 

    obj=openerp.registry(cr.dbname).get('document.directory') 
    print'obj',obj # it ptints document.directory 
    datas=obj.browse(cr,uid,ids) 
    print'datas',datas # Here nothing print 

und auch dies versucht:

osv_pool = pooler.get_pool(dbname) 
    dir_obj=osv_pool.get('document.directory') 

Suchfunktion funktioniert gut, aber nicht sehen? immer diese Fehlermeldung:

2016-06-24 06:41:52,690 9427 ERROR dms1 openerp.addons.document_ftp.ftpserver: Traceback (most recent call last): 
    File "/home/kabeer/odoo-8.0-20151229/openerp/addons/document_ftp/ftpserver/ftpserver.py", line 1806, in try_as_current_user 
re=self.run_as_current_user(function, *args, **kwargs) 
File "/home/kabeer/odoo-8.0-20151229/openerp/addons/document_ftp/ftpserver/ftpserver.py", line 1779, in run_as_current_user 
return function(*args, **kwargs) 
    File "/home/kabeer/odoo-8.0-20151229/openerp/addons/document_ftp/ftpserver/abstracted_fs.py", line 509, in get_list_dir 
listing = self.listdir(datacr) 
File "/home/kabeer/odoo-8.0-20151229/openerp/addons/document_ftp/ftpserver/abstracted_fs.py", line 377, in listdir 
res = node.children(cr) 
File "/home/kabeer/odoo-8.0-20151229/openerp/addons/document/document.py", line 981, in children 
res = self._child_get(cr, domain=domain) + self._file_get(cr) 
File "/home/kabeer/odoo-8.0-20151229/openerp/addons/document/document.py", line 1022, in _child_get 
print'cntobj_search_read',cntobj.search_read(cr, uid,[('id','=',1)],['name'],context=ctx) 
File "/home/kabeer/odoo-8.0-20151229/openerp/api.py", line 256, in wrapper 
return old_api(self, *args, **kwargs) 
File "/home/kabeer/odoo-8.0-20151229/openerp/models.py", line 5186, in search_read 
result = self.read(cr, uid, record_ids, fields, context=read_ctx) 
File "/home/kabeer/odoo-8.0-20151229/openerp/api.py", line 256, in wrapper 
return old_api(self, *args, **kwargs) 
File "/home/kabeer/odoo-8.0-20151229/openerp/models.py", line 3144, in read 
records = self.browse(cr, user, ids, context) 
File "/home/kabeer/odoo-8.0-20151229/openerp/api.py", line 256, in wrapper 
return old_api(self, *args, **kwargs) 
File "/home/kabeer/odoo-8.0-20151229/openerp/models.py", line 5266, in browse 
return self._browse(Environment(cr, uid, context or {}), ids) 
File "/home/kabeer/odoo-8.0-20151229/openerp/api.py", line 740, in __new__ 
env, envs = None, cls.envs 
File "/home/kabeer/odoo-8.0-20151229/openerp/tools/func.py", line 109, in __get__ 
return self.fget.__get__(None, owner)() 
File "/home/kabeer/odoo-8.0-20151229/openerp/api.py", line 713, in envs 
return cls._local.environments 
File "/usr/lib/python2.7/dist-packages/werkzeug/local.py", line 71, in __getattr__ 
raise AttributeError(name) 
AttributeError: environments 

Jede Lösung, pls?

Antwort

0

Behebung dieses Problems durch Erstellen eines neuen Cursors.

new_cr = openerp.sql_db.db_connect(self.context.cr.dbname).cursor() 
    uid, context = self.context.uid, self.context.context 
    with api.Environment.manage(): 
     self.env = api.Environment(new_cr, uid, context) 
     try: 
      datas=obj.browse(cr,uid,ids) 
      print'datas',datas # Here print 
     finally: 
       self.env.cr.close() 
0
for item in obj.search(cr, uid, []): 
     obj = self.browse(cr, uid, item) 
     print obj.name 
+0

Wenn die Datei self.pool.get einen Fehler erhält, hat das Objekt 'my_model' kein Attribut 'pool'. – KbiR

+0

Können Sie die Suchfunktion anzeigen –

+0

obj.search (cr, uid, []), Ausgang = [2, 7, 1, 3, 4, 5, 9, 8, 6] – KbiR

Verwandte Themen