2013-02-14 2 views
0

У меня есть class student и моя идея в том, что каждый раз, когда класс вызывается мне нужно вставить данные в другую таблицу, позволяет называть его logs, который class logs и имеет свою собственную logs таблицуМожно ли использовать метод create из одного класса для вставки в другую таблицу классов в OpenERP?

Проблема заключается в том, что, когда я звоните

logs.create(cr, uid, i, context) 

class student Внутри, OpenERP будет Верни мне ошибку:

unbound method create() must be called with logs instance as first argument (got Cursor instance instead) 

Я попытался чан в cr с logs, но он будет продолжать давать мне аналогичную ошибку.

Можно ли вставить записи в таблицу, созданную другим классом из данного класса?

Любой отзыв или модуль с этой функциональностью будут высоко оценены. Спасибо!

EDIT: Я понял, что, может быть, я могу назвать

cr.execute() 

с INSERT INTO заявлением из моей students class, но я не уверен, что это соответствующего способа решить эту проблему.

ответ

2

если logs класс, происходящий от orm.Model (или osv.osv), то вам нужно, чтобы получить модель объекта из пула моделей, а затем вы можете использовать create метод:

from openerp.osv import orm, fields 
class logs(orm.Model): 
    _name = 'logs' 
    _columns = {'name': fields.char('Name', ...), 
       'message': fields.char('Message', ...), 
       } 
    # ... 

class student(orm.Model): 
    _name = 'student' 
    _columns = {...} 
    def some_method(self, cr, uid, ids, context=None): 
     # get the logs model 
     logs_obj = self.pool.get('logs') 
     # prepare the value dict for new entry 
     values = {'name': val_of_the_name_col, 
        'message': val_of_the_message_col, 
        } 
     # call create 
     log_id = logs_obj.create(cr, uid, value, context=context) 
+0

Спасибо большое, я я учился, и я не знал о «pool.get». Это очень помогает, спасибо большое. – JordanBelf

 Смежные вопросы

  • Нет связанных вопросов^_^