这是我尝试过的代码:
@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()
我收到错误消息(“不可靠的insinrer unedatepassée”),但是字段date_pub没有更新,用户选择的相同日期被插入数据库!
帮助!!
答案 0 :(得分:1)
要限制在数据库旁边插入错误值,您应该使用 @ 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.'))
答案 1 :(得分:0)
以下代码可以帮助您仅允许将来和当前(今天)的日期
@ api.onchange('start_dt')
def check_date(self):
selected_date = datetime.strptime(self.start_dt, "%Y-%m-%d").date()
today = datetime.now().date()
todaydate = datetime.strptime(str(today), "%Y-%m-%d").date()
if selected_date < todaydate:
raise Warning("CURRENT OR FUTURE DATE IS ONLY ACCEPTABLE")