Reputation: 127
I want to add up a number and field value in current record, this is my code:
def _add(self, cr, uid, ids, context=None):
state_id = self.pool.get('ga.cashadvance').browse(self, cr, uid, ids, self.state)
res = chr(int(state_id) + 1)
return res
class cashadvance(osv.osv):
_name = 'ga.cashadvance'
_columns = {
'id_user' : fields.many2one('res.users', string='User', required=True, readonly=True),
'description' : fields.text('Description', required=True),
'state' : fields.char('State', readonly=True, required=True),
}
def addition(self, cr, uid, ids, context=None):
return self.write(cr,uid,ids,{'state':_add(self, cr, uid, ids, context)},context=context)
the addition function refers to a button in view form, when I click to the button raise this error: AttributeError: 'ga.cashadvance' object has no attribute '_ids'
Need help please
Upvotes: 1
Views: 881
Reputation: 14801
Just write the state on every button click without so much code:
class cashadvance(orm.Model):
_name = 'ga.cashadvance'
_columns = {
'id_user': fields.many2one(
'res.users', string='User', required=True, readonly=True),
'description': fields.text('Description', required=True),
'state': fields.char('State', readonly=True, required=True),
}
def addition(self, cr, uid, ids, context=None):
for adv in self.browse(cr, uid, ids, context):
new_state = chr(int(adv.state) + 1)
adv.write({'state': new_state})
return True
Upvotes: 1