业务场景:
模型a.tend 中有product_tmpl_id, 模型b.seo中有tend_id, 在b.seo中有product_tmpl_id与tend_id, 在b.seo页面上选择product_tmpl_id时, tend_id的搜索域应变更为[('product_tmpl_id', '=', product_tmpl_id)]
py:
class ATend(models.Model)
_name = 'a.tend'
product_tmpl_id = fields.Many2one('product.template', string='Product Template')
class ATend(models.Model)
_name = 'b.seo'
tend_id = fields.Many2one('a.tend', string='Tend')
@api.model
def _name_search(self, name='', args=None, operator='ilike', limit=100,
name_get_uid=None):
return self.search([
( 'name', operator, name),
('product_tmpl_id', '=', self.env.context.get('product_tmpl_id'))
]).name_get()
xml:通过context进行传值(product_tmpl_id)
<field name="product_tmpl_id" invisible="1"/>
<field name="tend_id" context="{'product_tmpl_id': product_tmpl_id}"/>