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

Python 按员工标签验证的odoo分配请求错误?,python,xml,odoo,odoo-10,Python,Xml,Odoo,Odoo 10,您好,我正在处理第10版中的休假条件模块,我添加了一个验证,当没有为员工指定加入日期时,它会引发问题;他工作得很好 但是,在请求按员工标签分配时,它也是raise,尽管我尝试了一个标签,该标签中只有一名员工,并且为我分配了一个加入日期 这是密码 @api.constrains('state', 'date_from', 'holiday_status_id',) def _check_hire_date(self): from_dt = fields.Datetime.from_st

您好,我正在处理第10版中的休假条件模块,我添加了一个验证,当没有为员工指定加入日期时,它会引发问题;他工作得很好

但是,在请求按员工标签分配时,它也是raise,尽管我尝试了一个标签,该标签中只有一名员工,并且为我分配了一个加入日期 这是密码

@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 = 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

你从_dt和_dt中得到了什么?有一些验证错误取决于它们,但我复制了代码的相关部分。我认为这是错误的,你不能得到像你编码的那样的值。请看一下与此相关的文档。@MohamedFouad,您只需要从self-it-self获取该值,请从_dt=self.from查看_dt@MohamedFouad你不会投票或接受对你有帮助的答案,但我会给你一个提示,对你有帮助,休假类型中有一个字段,用于区分分配中的休假。只需查找它,您就可以使用带有约束的api.one,因为您没有循环使用self Switch,这可能会导致单例错误祝您好运