2015-10-12 3 views
0

В модуле часа, класс hr.employee имеет следующие поля, чтобы для этих полей я хотел иметь действительный номер телефона с 10 номеров, только если я ввести более 10 номеров он должен показать сообщение, как ввести действительный NUMКак добавить сообщение подтверждения в hr-модуль в оду?

'work_phone': fields.char('Work Phone', readonly=False), 
'mobile_phone': fields.char('Work Mobile', readonly=False), 

ответ

0
def on_change('number'): 
    Check here length of number greater than 10 or not if greater, then rais or validate error 

view side 
<Fields name="name" onchange="on_change('number')"> 

или

использование ограничения тесто

или чек в создать

+0

, пожалуйста, добавьте здесь код и я должен использовать его только в hr модуле –

2
import re 

def is_phone(self, cr, uid, ids, context=None): 
    record = self.browse(cr, uid, ids) 
    pattern ="^[0-9]{10}$" 
    for data in record: 
     if re.match(pattern, data.phone): 
      return True 
     else: 
      return False 
    return {} 

_constraints = [(is_phone, 'Error: Invalid phone', ['phone']), ] 

Таким образом, вы можете сопоставить номер телефона с регулярным выражением.

Вид сбоку

<fields name="phone" onchange="is_phone()"> 
1

Если вы хотите использовать OnChange метод, чтобы получить предупреждение о недействительных символов в поле, попробуйте следующее:

def onchange_mobile(self, cr, uid, ids, mobile, context=None): 
    res = {} 
    if not mobile: 
     return res 

    if not mobile.isdigit(): 
     # raise osv.except_osv(_('Invalid phone'),_('Please enter a valid phone')) 
     res['warning'] = "Phone number %s is invalid, please use only digits!" % mobile 
     res['value']['mobile'] = False # just erase the value entered 
    return res 

Или, вы можете переопределить THW метод записи из ваш рабочий класс и ошибка повышения, если поле «мобильное» не является числовым ... например

def write(self, cr, uid, ids, vals, context=None): 
    if 'mobile' in vals.keys() and not vals['mobile'].isdigit(): 
     raise osv.except_osv(_('Invalid phone'),_('Please enter a valid phone')) 
    return super(your_class, self).write(cr, uid, ids, vals, context=context) 

надеюсь, что это поможет