2017-12-19 11 views
0

プロジェクトモジュールstart_dateとstop_dateに2つのフィールドを追加しました。また、入力を制御するコードを追加しようとしましたが、stop_dateがstart_dateより大きい場合にのみレコードを保存します。だから私は、プロジェクトのクラスにこのコードを追加:期限は開始日前であるときstart_dateとデッドラインに制約を設定する

date_start = fields.Date(string='Start Date') 
    date_stop = fields.Date(string= 'Deadline') 
    @api.onchange('date_stop') 
    def _onchange_date_stop(self): 
    if self.date_start != False and self.date_stop != False: 
     if (self.date_stop<=self.date_start): 
      raise ValidationError("deadline date Should be greater than start date!") 
    _constraints = [ 
    (_onchange_date_stop, 'deadline date 2 Should be greater than start date!', []), 
] 

は今、それは検証エラーが発生します。

deadline date Should be greater than start date! 

と私は、私はこれを得たレコードを保存しようエラー:

deadline date 2 Should be greater than start date! 

    Error details: 
    deadline date Should be greater than start date! 
    None 

しかし、締め切りは開始日よりも大きいとき、私はこのエラーを得た:

deadline date 2 Should be greater than start date! 

締め切りが開始日よりも大きいかどうかにかかわらず、私はいつも問題があります。

誰でも助けることができますか?おかげさまで

答えて

0

あなたは

@api.constrains('date_start', 'date_stop') 
def check_date_fields(self): 
    if self.date_start and self.date_stop: 
     if self.date_stop <= self.date_start: 
      raise ValidationError("deadline date Should be greater than start date!") 
+0

感謝を。完全に私のために働いた。 – Tessnim

0

制約デコレータを使用することができます。また、このコードはあまりにも私の仕事:

date_start = fields.Date(string='Start Date') 
    date_stop = fields.Date(string= 'Deadline') 

    @api.one 
    @api.constrains('date_start', 'date_stop') 
    def _check_deadline(self): 
     if self.date_stop <= self.date_start: 
      raise ValidationError("deadline must be greater than start date") 
関連する問題