@ api.constrains无法正常工作

时间:2017-10-12 04:45:23

标签: openerp odoo-8

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

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

1 个答案:

答案 0 :(得分:4)

您需要注意以下几点:

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