Я просто хочу знать, как некоторые функции можно перевести в новый API, или нужно ли их полностью переводить, в зависимости от того, какой API-вызов мы используем.
Например,
@api.model
the method is exposed as not using ids, its recordset will generally be empty. Its "old API" signature is cr, uid, *arguments, context:
@api.model
def some_method(self, a_value):
pass
# can be called as
old_style_model.some_method(cr, uid, a_value, context=context)
В Odoo v8 предположим, что у меня есть такая функция:
def update_info(self, cr, uid, ids, context=None):
""" OpenERP osv memory wizard : update_info_partner
"""
context = context or {}
seniat_url_obj = self.env('seniat.url')
self.cr.execute('''SELECT id FROM res_partner WHERE vat ilike 'VE%';''')
record = self.cr.fetchall()
pids = [item[0] for item in record]
seniat_url_obj.connect_seniat(cr, uid, pids, context=context,
all_rif=True)
return{}
Если я добавлю декоратор @api.model
к этой функции, я думаю, мне также нужно обновить его атрибуты, то есть: self, cr, uid, ids, context=None
, верно?
В этом случае достаточно добавить декоратор @api.model
, а затем изменить атрибуты функции только на self
?
Я просто пытаюсь понять, как это решить, с этого момента, так как я переношу некоторые модули из версии 8 в версию 10.