@api.constrains 工作不正常

pha*_*ani 3 openerp odoo-8

在“project.project”模型中,我编写了一个函数来验证“开始日期”和“结束日期”,为此我使用了 onchange 函数。该函数正在运行并发出警告,但正在创建记录。实际上,如果有任何错误,则表示无法保存记录,因为我使用的是 @api.constrains 下面是我的代码。

py.代码:

@api.onchange('date','date_start')
@api.constrains('date','date_start')
def cheking_field_date(self):
    self.t1 = self.date_start 
    self.t2 = self.date
    if self.t2 == False:
        pass
    else:   
        if str(self.t1) > str(self.t2):
            raise Warning('The Deadline Date is Invalid')
        else:
            pass  
Run Code Online (Sandbox Code Playgroud)

但是当我编辑记录时,如果日期字段中的任何更改意味着一切都很好(即“开始日期”和“结束日期”中的验证问题)。当时记录没有保存。为什么会出现这种类型的问题任何人请帮助我。

Bha*_*dra 5

您需要注意以下几点:

  • 无需使用@api.onchange
  • 删除不必要的变量。
  • 只写你想发出警告的条件。

尝试使用以下代码。

@api.one
@api.constrains('date','date_start')
def cheking_field_date(self):
    if self.date_start and self.date:
        if self.date_start > self.date:
            raise Warning('The Deadline Date is Invalid')
Run Code Online (Sandbox Code Playgroud)