我有一个Many2One字段接受我的模型中的产品,但我想使用所述模板外部id(XML id)将此字段限制为特定的产品模板。
我试过这个没有成功:
#This piece of code doesn't work
the_product = fields.Many2one('product.product',
domain = [('product_tmpl_id','=', "ref('the_package.the_external_id')")])
我该怎么做?
答案 0 :(得分:3)
此问题的解决方案是使用返回过滤器参数的函数。这样,我们可以访问函数体中的self
变量,因此,我们可以使用它来搜索特定的外部ID。
@api.model
def _get_domain(self):
# We have access to self.env in this context.
ids = self.env.ref('the_package.the_external_id').ids
return [('product_tmpl_id','=', ids)]
the_field = fields.Many2one('product.product',
required=False,
domain = _get_picking_product_domain)
答案 1 :(得分:0)
上述解决方案不起作用。
错误:
ProgrammingError:无法调整类型' model_name'
但试试这个:
您不必在您的字段中插入域名:
@api.onchange('field_a')
def fiel_change(self):
dom['field_a'] = [(*)] #* type your domain
return {'domain':dom}