在'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')