Python 如何重写创建函数Odoo
我正在创建Odoo模型,我想在create上触发一个函数 *更多资讯: *集体游:Python 如何重写创建函数Odoo,python,xml,odoo,Python,Xml,Odoo,我正在创建Odoo模型,我想在create上触发一个函数 *更多资讯: *集体游: class obj_tour(osv.osv): _name = "obj.tour" _description = "Objet tour" _columns = { 'id_trans' : fields.many2one('obj.gtransport',"Transport",selection=_get_selection_transport,required =
class obj_tour(osv.osv):
_name = "obj.tour"
_description = "Objet tour"
_columns = {
'id_trans' : fields.many2one('obj.gtransport',"Transport",selection=_get_selection_transport,required = True),# foreign key
}
...
*阶级运输
class obj_gtransport(osv.osv):
_name = "obj.gtransport"
_description = "Objet gtransport"
_rec_name = "matricule"
_columns = {
'est_dispo': fields.boolean( "Disponible"),
}
...
我想在巡更中使用传输时触发,传输将更改(est_dispo boolean为false)
*照片:
我试图重写create函数,但它不会更改布尔值
图片:
有什么想法吗 覆盖tour object的创建方法并在transport object中将布尔值赋值为false。您能给我一个例子吗?请检查您的代码,您的域中似乎有问题。您可以将id与字符串进行比较。
from openerp import models, fields, api
class obj_tour(models.Model):
_inherit = 'obj.tour'
@api.model
def create(self, values):
record = super(obj_tour, self).create(values)
if 'id_trans' in values:
trans_id = values['id_trans']
trans_model = self.env['obj.gtransport']
domain = [('matricule', '=', trans_id)]
trans_ids = [idn.id for idn in trans_model.search(domain)]
ts = trans_model.browse(trans_ids)
for obj in ts:
#obj.est_dispo = False
obj.write({'est_dispo' : False})
return record