Openerp 如何使用onchange获取用于筛选的id

Openerp 如何使用onchange获取用于筛选的id,openerp,Openerp,如何从另一个模型检索manyOne字段的值或其ID 例如: class Contrat(models.Model): _name = 'facturation.contrat' contrat_parent_id = fields.Many2one('facturation.contrat', string='Numéro Contrat Client', domain=[('is_prestataire', '=', False)])

如何从另一个模型检索manyOne字段的值或其ID 例如:

class Contrat(models.Model):
_name = 'facturation.contrat'
contrat_parent_id = fields.Many2one('facturation.contrat', string='Numéro Contrat Client',
                              domain=[('is_prestataire', '=', False)])



class Lot(models.Model):
contrat_id = fields.Many2one('facturation.contrat', ondelete='cascade')
articlecontrat_ids = fields.Many2many('facturation.articleouvrage',string='Article Lot')
91/5000
我希望当我更改contrat\u parent\u id时,我会让它重新使用它,并为字段'articlecontrat\u id'筛选我的文章。

这里您需要使用onchange event,我假设
制作。articleouvrage
有一个名为
contrat\u id
的m2o字段

#在onchange事件中,始终输入触发事件的字段的名称
@api.onchange(“合同父项id”)
变更合同定义(自身):
“”“更改合同时更新域”“”
如果self.contract\u parent\u id:
#始终检查字段是否为空
#像这样返回域名,但我不知道你到底需要什么
返回{'domain':{'articleContract_id':[('contract_id','=',self.contract_parent_id.contract.id)]}
否则:#删除域
返回{'domain':{'articleContract_id':[]}
如果您想在用户更改合同id时删除所有记录,但我认为您会使用户不正常 重新选择所有这些记录

    self.articlecontrat_ids = [(5, 0, 0)]

谢谢Tchi Odoo的帮助,但是当我更改contrat\u parent\u id时,我希望返回Article contrat\u id的域这可能是感谢这是你返回动态域的方式只要根据需要调整代码我没有名为contrat\u id的m2o字段正在制作。articleouvrage…??我没有名为contrat\u id的m2o字段正在制作。articleouvrage…??类articleouvrage(models.Model):\u name='facturation.articleouvrage'\u rec\u name='article\u id'article\u id=fields.manyOne('facturation.article',string='article',ondelete=“cascade”)ouvrage\u id=fields.manyOne('facturation.ouvrage',string='ouvrage',ondelete=“cascade”)Tchi Odoo先生请回答我