2016-04-28 9 views
1

Ich möchte eine Einschränkung für die jrestant, die mir die Anzahl der Tage zwischen zwei Daten, die auch positiv sein müssen, zurückgibt.
Wie schränkt man ein Feld ein?So machen Sie eine Einschränkung für ein Feld

def compa_date(self,cr,uid,ids,args,fields,context=None): 
     res = {} 
     for self_brow in self.browse(cr,uid,ids,context): 

      if self_brow.Date_ouv_pli or self_brow.date_depot: 
       date_debut = datetime.strptime(self_brow.Date_ouv_pli,'%Y-%m-%d') 
       date_fin = datetime.strptime(self_brow.date_depot,'%Y-%m-%d') 
       res[self_brow.id] = (date_debut - date_fin).days      
     return res 

    _columns = { 
     'date_depot' : fields.date('Date dépot de soumission'), 
     'Date_ouv_pli' : fields.date('Date Ouverture Plis'), 
     'jrestant': fields.function(compa_date,string='Jours restant') 
    } 

    def _check(self, cr, uid, ids, context=None): 
     for product in self.read(cr, uid, ids, ['jrestant'], context=context): 
      if jrestant < '0' : 
       return False 
     return True 
    _constraints = [(_check, 'Days must be positive', ['jrestant'])] 
+0

hier 'jrestant' ist Funktion/Rechenfeld. 'jrestant': felder.function (compa_date, string = 'Jours restant') , so dass Sie keine Einschränkungen anwenden können. – prakash

Antwort

2

Set store zu True so dass der Wert des Funktionsfeldes wird in der Datenbank gespeichert werden, die Sie Einschränkungen auf sie einstellen kann.

'jrestant': fields.function(compa_date, string='Jours restant', store=True)