异常后,字段重置或清理

时间:2015-11-03 06:19:33

标签: python python-2.7 openerp odoo-8

在创建Exception之后我想重置那个没有发生的字段,因为我尝试了很多替代方案,但它没有价值......例如:

@api.onchange('time_date')  
def onchange_date_time(self):

        print 'working till now ----------------------------'
        if self.time_date:
            time_date = datetime.datetime.strptime(self.time_date, "%Y-%m-%d").date()
            if time_date<datetime.date.today():
                raise except_orm('Error','Please enter the correct date')
                self.time_date = None
            else:
                pass 

以上代码我用它来创建一个Exception,当输入日期不是今天在酒店模块中的日期时,time_date指的是入住日期,但是它创建了一个例外但是日期字段没有重置。

2 个答案:

答案 0 :(得分:1)

如果您使用onchange(),则可以使用警告而不是例外。

试试这个: -

    @api.onchange('time_date')
def _onchange_date_time(self):
    if self.time_date:
        time_date = datetime.datetime.strptime(self.time_date, "%Y-%m-%d").date()
        if time_date<datetime.date.today():
            self.time_date = False
            return {
                'warning': {
                    'title': "Error",
                    'message': "Please enter the correct date",
                }
            } 
        else:
            pass 

希望这有帮助。

答案 1 :(得分:1)

试试这个:

return {

         'warning': {'title': 'Error!', 'message': 'Please enter the correct date'},
          'value': {
                     'time_date': None,
                     'flat': None,
                    } 
                }