2017-10-12 3 views
2

Dans le modèle 'project.project', j'ai écrit une fonction pour valider 'start Date' et 'date de fin' pour cette fonction onchange que j'ai utilisée. La fonction fonctionne et donne un avertissement mais enregistre est en train de créer. En fait, s'il y a une erreur, cela signifie que l'enregistrement ne peut pas être sauvegardé parce que j'utilise @ api.constrains ci-dessous est mon code.@ api.constrains ne fonctionne pas correctement

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 

Mais quand j'éditait le dossier en cas de changement dans le champ de date signifie que tout va bien (ie problème de validation « date de début » et « date de fin ») A cette fois le dossier ne sauve pas.Pourquoi ce type de problème arrive peut-on m'aider s'il vous plaît.

Répondre

3

Vous devez prendre soin des points suivants:

  • Pas besoin d'utiliser @ api.onchange
  • supprimer des variables inutiles.
  • Ecrivez uniquement la condition pour laquelle vous souhaitez déclencher un avertissement.

Essayez avec le code suivant.

@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') 
+0

Merci pour votre réponse, mais cela ne fonctionne pas le même problème arrivait. – phani

+0

Avez-vous comparer la valeur de la date? Je pense que par condition, cela ne permettra pas de sauvegarder le disque. Donc peut-être un problème dans les données. –

+0

J'ai essayé la même fonction dans 'project.task' mais ça fonctionne très bien. Le problème est avec le modèle 'project.project'. J'ai essayé avec votre code aussi mais pas d'utilisation – phani