0

我有一个class student,我的想法是,每次调用该类时,我都需要将一些数据插入另一个表中,让我们调用它logs,它class logs有自己的logs

问题是当我打电话时

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)

我尝试更改crwithlogs但它会不断给我一个类似的错误。

是否可以在给定类中由另一个类创建的表中插入记录?

任何具有此功能的提示或模块将不胜感激。谢谢!

编辑:我意识到也许我可以打电话

cr.execute()

INSERT INTO从我的内部声明,students class但我不确定这是解决问题的适当方法。

4

1 回答 1

2

如果是从(或)logs派生的类,那么您需要从模型池中获取模型对象,然后您可以使用该方法:orm.Modelosv.osvcreate

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)
于 2013-02-14T08:28:44.357 回答