微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Odoo - 不通过 _rec_name 过滤 Many2one

如何解决Odoo - 不通过 _rec_name 过滤 Many2one

我想过滤 m2o 字段,但不是名称 (_rec_name)。

class LecturerWorkday(models.Model):
    _name = 'lecturer.workday'
    _rec_name = 'lecturer_id'
  
    name = fields.Selection([('sunday','Sunday'),('monday','Monday'),('tuesday','Tuesday'),('wednesday','Wednesday'),('thursday','Thursday'),('friday','Friday'),('saturday','Saturday'),],default='sunday',string="Workday",required=True)
    lecturer_id = fields.Many2one('school.lecturer',string="Lecturer Name",invisible=True)

class SchoolLecturer(models.Model):
    _name = 'school.lecturer'

     name = fields.Char(string="Lecturer Name",required=True)
     workday_id = fields.Many2one("lecturer.workday",string="Workday ID")

 class LecturerTimeoff(models.Model):
    _name = "lecturer.timeoff"

    lecturer = fields.Many2one('school.lecturer',string="Lecturer Name")
    day_m2o = fields.Many2one('lecturer.workday',string="Lecturer Workdays")
    reason  = fields.Char("Time off Reason")

    @api.onchange('lecturer')
       def get_lecturer_workday(self):
         day_obj = self.env['lecturer.workday'].search([('lecturer_id','=',self.lecturer.id)]).mapped('name')
         day_list = []
            for rec in day_obj:
                day_list.append(rec)
                res = {}
                res['domain'] = {'day_m2o': [('name',day_list)]}
                return res
                print (res)

我的问题是:

  1. 当我选择讲师姓名时,day_m2o 应显示所选讲师姓名的工作日。我一直在尝试按上述方法计算,但结果仍然显示讲师姓名,而不是工作日。
  2. 每当我点击还没有工作日的新讲师姓名时,@api.onchange 似乎并没有立即更新结果。如何解决这个问题?

感谢您的帮助

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。