员工标签验证错误的odoo分配请求?

odoo allocation request by employee tag validation error?

大家好,我正在处理版本 10 中的休假条件模块,我添加了一个验证,当没有为员工分配入职日期时会引发验证,它运行良好,

但在请求按员工标签分配时也会引发,尽管我尝试了一个标签,该标签中只有一名员工,并且为他分配了一个入职日期 这是代码

@api.constrains('state', 'date_from', 'holiday_status_id',)
def _check_hire_date(self):

     from_dt = fields.Datetime.from_string(self.date_from)
     to_dt = fields.Datetime.from_string(self.date_to)
     if self.employee_id.joining_date:
         jo_dt = fields.Datetime.from_string(self.employee_id.joining_date)
     else:
         raise ValidationError("you must define joining date")

我应该怎么做才能通过我将在分配请求时执行的所有验证并使其仅在离开请求而不是分配时工作

您知道这是请假还是分配的字段是 type

     type = fields.Selection([
        ('remove', 'Leave Request'),
        ('add', 'Allocation Request')
    ],....)

所以在开始验证之前检查它是否不是分配请求:

      @api.one # because you didn't loop over self in your code
      @api.constrains('state', 'date_from', 'holiday_status_id',)
      def _check_hire_date(self):
              if self.type == 'add': return  # skip allocation requests
              # rest of your code goes