Python 如何重写创建函数Odoo

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 =

我正在创建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 = 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