iam supreeth
iam supreeth

Reputation: 497

TypeError: _get_category() takes exactly 6 arguments (4 given)

What Exactly is Wrong?

I am trying to run the code and i am getting below error

I have attached the traceback.

    Server Traceback (most recent call last):
  File "C:\Program Files (x86)\OpenERP 7.0-20141009-011214\server\openerp\addons\web\session.py", line 89, in send
  File "C:\Program Files (x86)\OpenERP 7.0-20141009-011214\server\.\openerp\netsvc.py", line 296, in dispatch_rpc
  File "C:\Program Files (x86)\OpenERP 7.0-20141009-011214\server\.\openerp\service\web_services.py", line 626, in dispatch
  File "C:\Program Files (x86)\OpenERP 7.0-20141009-011214\server\.\openerp\osv\osv.py", line 190, in execute_kw
  File "C:\Program Files (x86)\OpenERP 7.0-20141009-011214\server\.\openerp\osv\osv.py", line 132, in wrapper
  File "C:\Program Files (x86)\OpenERP 7.0-20141009-011214\server\.\openerp\osv\osv.py", line 199, in execute
  File "C:\Program Files (x86)\OpenERP 7.0-20141009-011214\server\.\openerp\osv\osv.py", line 187, in execute_cr
  File "C:\Program Files (x86)\OpenERP 7.0-20141009-011214\server\.\openerp\osv\orm.py", line 1610, in default_get
TypeError: _get_category() takes at least 6 arguments (4 given)

def _get_category(self, cr, uid, ids, field_names, arg, context=None):
        category_obj = self.pool.get('module.category').browse(cr, uid, category_id)
        return {'value': {'category_id': category_obj.name}}

_name ='module.level'
    _description ="Module Level"
    _columns = {
    'name':fields.char('Level', size=20),
    'category_id':fields.function(_get_category,type='many2one',obj="module.category",method=True,string='Session'),

Upvotes: 0

Views: 650

Answers (2)

Sagar Pise
Sagar Pise

Reputation: 887

Check indentation, your _name and _description indentation is looks wrong.

you can write code like this

def _get_category(self, cr, uid, ids, field_names, arg, context=None):
    # Your Logic
    # I need to know where is category_id ??

_name = 'module.level'
_description = "Module Level"
_columns = {
    'name': fields.char('Level', size=20),
    'category_id': fields.function(_get_category, type='many2one', relation="module.category", method=True, string='Session'),
}

Upvotes: 0

Bhavesh Odedra
Bhavesh Odedra

Reputation: 11143

You are passing wrong parameter to function.

Try with this code:

def _get_category(self, cr, uid, ids, field_names, arg, context=None): 
    #function logic
    return 

Upvotes: 1

Related Questions