В моем случае +1 порядковый номер отображается, когда я открываю форму. Но когда я сохраняю запись, она снова увеличивается на 1. Это означает, что мои порядковые номера теперь выглядят так:
- EMP0010
- EMP0012
- EMP0014
Это проблема с openerp или мне что-то не хватает в моем коде?
'register_no': fields.char('Register No', size=32, help='Register No', readonly=True), # employer wise ,estate wise
'employer_no': fields.char('Employer No', type='char', readonly=True),
_defaults = {
'register_no': lambda obj, cr, uid, context: '/',
'employer_no': lambda obj, cr, uid, context: '/',
}
Вы можете посмотреть мой код здесь
Я прокомментировал
def create(self, cr, uid, values, context=None):
values['register_no'] = self.pool.get('ir.sequence').get(cr, uid, 'bpl.worker')
values['employer_no'] = self.pool.get('ir.sequence').get(cr, uid, 'bpl.employer')
return super(bpl_worker_registration, self).create(cr, uid, values, context=context)
1 ответ
Вы дважды вызывали метод ir.sequence, один раз из create
def create (self, cr, uid, values, context = None):
values['register_no'] = self.pool.get('ir.sequence').get(cr, uid, 'bpl.worker') values['employer_no'] = self.pool.get('ir.sequence').get(cr, uid, 'bpl.employer') return super(bpl_worker_registration, self).create(cr, uid, values, context=context)
И второй по умолчанию
_defaults = {
'register_no': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'bpl.worker'), 'employer_no': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'bpl.employer'), }
Два раза звонить не имеет смысла. делать вызов только из _default или из метода create
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.