2015-08-24 6 views
1

Я определил OnChange и вернулся вычисленный возраст от даты поддавки рождения (DOB)При возвращении из OnChange, ошибка: [_.sprintf] ожидает номер, но найденная строка

def onchange_getage_id(self, cr, uid, ids, dob, context=None): 

    if dob: 
     current_age = datetime.now().year - parser.parse(dob).year 
     print current_age 
     return {'value':{'age':current_age}} 
    else: 
     return {'value':{'age':' '}} 

Я объявил, что возраст поле имеет целое число, подобное этому.

'age' : fields.integer('Age'), 

При вводе д.р. возвращает возраст, но когда мы убираем и ничего не дают в поле он вернется с

Error: [_.sprintf] expecting number but found string 

ответ

2

Я нашел ответ!

Если вы указали, что в поле есть целое число, которое вы должны вернуть, значение словаря имеет целое число.

Я вернулся, у него есть место (return {'value':{'age':' '}}), что означает строка. Это является причиной ошибки.

Так же произошло следующее изменение возвращаемого значения в другой части.

else 
    return {'value':{'age':0}} 

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

  • Нет связанных вопросов^_^