Odoo 如何在没有onchange触发器的情况下为多个字段设置动态域?
我有一个单元课Odoo 如何在没有onchange触发器的情况下为多个字段设置动态域?,odoo,Odoo,我有一个单元课 类别CRM项目(models.Model): _name='crm.projects' product\u lines=fields.many2min('crm.project.product.lines')) 和另一个模块中的类 class CoRG(models.Model): _继承='crm.lead' project=fields.manyOne(comodel_name=“crm.projects”) product\u line=fields.manyOne('c
类别CRM项目(models.Model):
_name='crm.projects'
product\u lines=fields.many2min('crm.project.product.lines'))
和另一个模块中的类
class CoRG(models.Model):
_继承='crm.lead'
project=fields.manyOne(comodel_name=“crm.projects”)
product\u line=fields.manyOne('crm.project.product.line'))
第一个模块有一个按钮,可从第二个模块打开新表单,并可轻松设置由onchange
domain={'product_-lines':[('id','in',self.project.product_-lines.ids)]
问题是,如果我转到从该表单创建的记录屏幕并编辑项目行,域将无法工作
我试着用
domain:lambda self:[('id','in',self.project.product\u lines.ids)]
在第二个模块的领域,但这不起作用,有什么建议吗?Abdulrahman
您可以像这样在manyOne
字段上设置默认域,无需触发onchange
@api.model
def _default_tax_group(self):
return self.env['account.tax.group'].search([], limit=1)
tax_group_id = fields.Many2one('account.tax.group', string="Tax Group", default=_default_tax_group, required=True)
谢谢您不需要设置域,因为字段是相关的 更改如下:
class CoRG(models.Model):
_inherit = 'crm.lead'
project = fields.Many2one(comodel_name="crm.projects")
product_lines = fields.Many2one(related='project.product_lines')
使用以下实现解决了该问题
test1=fields.Many2many('crm.project.product.line',related='project.product\u line'))
product_lines=fields.manyOne('crm.project.product.lines',domain=“[('id','in',test1)])
感谢您的建议。在搜索过程中,您仍然需要添加可以过滤所需记录的域。