0

私の場合、フォームを開くと+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)
4

1 に答える 1

1

ir.sequenceメソッドを2回呼び出しました。1つは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)

デフォルトから2番目

_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'),

 }

2回呼び出すのは意味がありません。_defaultまたはcreateメソッドからのみ呼び出しを行う

于 2013-03-26T08:29:39.290 に答える