了解情况 我有以下 2 个型号。我添加了一个基于 'requirement_id' 的 onchange 函数。我想在 request_id 的 panel_id 字段中添加域过滤器。有可能吗?我的 onchange 函数以这种方式不起作用
class PanelVendorAssignment(models.Model):
_name = "panel.vendor.assignment"
requirement_id = fields.Many2one('hr.job', string='Requirement')
panel_vendor_assignments_ids = fields.One2many(
string='Vendor', comodel_name='panel.vendor.assignment.line',
inverse_name='panel_vendor_assignment_id', tracking=True)
@api.onchange('requirement_id')
def _onchange_panel_stage(self):
if self.requirement_id:
panel_stage_ids = self.env['panel.time.slot.availability'].sudo().search(
[('requirement_id', '=', self.requirement_id.id),('status', '=', 'open')])
for rec in panel_stage_ids:
domain = [('id', '=', rec.panel_user_id.id)]
return {'domain': {'panel_vendor_assignments_ids.panel_id': domain}}
class PanelVendorAssignmentLine(models.Model):
_name = 'panel.vendor.assignment.line'
panel_vendor_assignment_id = fields.Many2one(comodel_name='panel.vendor.assignment', ondelete='cascade')
panel_id = fields.Many2one(comodel_name='res.partner',required=True,)
不,你不能那样做。
您的代码也有一些错误覆盖域的值,因此您将返回最后一个域而不是每个记录域
您可以做的是计算 o2m 中每条记录的域并将其保存在另一个字段中,以供 panel_id 字段在本地使用
要保存域,您可以使用二进制字段或使用此模块: