2015-08-21 8 views
0

Как показать сообщение об ошибке «Комната была уже забронирована». Я хочу проверить ** room_id, ** start **, как это возможно?Показать сообщение об ошибке

файл ого

_columns = { 
    'room_id' : fields.many2one('room.management', string="Room Booking"), 
    'duration': fields.integer('Duration'), 
    'reason': fields.char('Reason',requierd=True ,help="short deatails about booking"), 
    'start': fields.datetime('Start At',requierd=True), 
    'end': fields.datetime('End At',requierd=True), 
} 

ответ

1

Вы можете использовать constrains метод декоратор:

@api.one 
@api.constrains('start', 'end', 'room_id') 
def _check_room_overlap(self): 
    overlaping_bookings = self.search_count([ 
     ('room_id', '=', self.room_id.id), 
     ('start', '<', self.end), 
     ('end', '>', self.start), 
    ]) 
    if overlaping_bookings: 
     raise exceptions.ValidationError("The room was already booked") 
+0

Благодаря Людвика, его работу, но я не могу иметь возможность заказать эту комнату после даты таких же ошибок Возникает ошибка «Validate», ошибка при проверке ограничений, недопустимое значение room.management (2) в домене («room_id», «=», room.room.management (2)) « –

+0

Я отредактировал свою статью ts (изменено 'self.room_id' на' self.room_id.id', которое должно вернуть фактическое числовое значение). Теперь он должен работать. –

+0

одно исключение глобального глобального исключения не определено. –

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