2016-05-24 4 views
0

вот код, который я попробовал:как принять только будущую дату в виде odoo

@api.onchange('date_pub') 
def get_right_date(self): 
    if self.date_pub: 
     if datetime.strptime(self.date_pub, DEFAULT_SERVER_DATE_FORMAT).date() < datetime.now().date(): 
      raise Warning(_("impossible d'insérer une date passée")) 
      self.date_pub=datetime.now().date() 

Я получаю сообщение об ошибке («невозможно d'insérer ипа дата passée»), но поле date_pub не обновляется, то же самое время, которое выбрал пользователь, вставляется в базу данных!

Справка!

+0

нет, после предупреждения, я хочу, чтобы вставить текущую дату или очистить вставленное значение и попросить пользователя повторно ввести дату valide, вы видите? – Mraimou

ответ

1

Для ограничения вставки неправильного значения в стороне в Databse вы должны использовать @ api.constrains Как:

@api.one 
@api.constrains('date_pub') 
def _check_date_pubd(self): 
    if self.date_pub: 
     if datetime.strptime(self.date_pub, DEFAULT_SERVER_DATE_FORMAT).date() < datetime.now().date(): 
      raise ValidationError(_('impossible d'insérer une date passée.')) 
+0

спасибо, это работает !! – Mraimou

Смежные вопросы