0

class studentクラスが呼び出されるたびに、別のテーブルにデータを挿入する必要があるというのが私の考えです。それを呼び出してlogsclass 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)

crwith を変更しようとしlogsましたが、同様のエラーが発生し続けます。

特定のクラス内から別のクラスによって作成されたテーブルにレコードを挿入することは可能ですか?

この機能を備えたヒントやモジュールは大歓迎です。ありがとう!

編集:私は多分私が電話できることに気づいています

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 に答える