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

py.code:

@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


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

最佳答案

您需要注意以下几点:


无需使用@ 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')

09-20 22:41