Skip to Content
Menu
This question has been flagged
2 Replies
7433 Views

I try to use copy_data in other function

def test_mdel(self, cr, uid, id, ids, default=None, context=None):
default = {}
test = super(complement_sale_order, self).copy_data(cr, uid, id, default, context=context)
return test

But i have a error

key error : id

please help

Avatar
Discard
Best Answer

In your code test_mdel method extra one parameter ids is added. so remove the extra parameter

The Below code copy_data method used in sale order

  def copy_data(self, cr, uid, id, default=None, context=None):
        if not default:
            default = {}
        default.update({'state': 'draft',  'invoice_lines': []})
        return super(sale_order_line, self).copy_data(cr, uid, id, default, context=context)

if you are override copy_data method then use super otherwise try the below code:-

def test_mdel(self, cr, uid, id, default=None, context=None):
        default={}
        test = self.copy(cr,uid, id[0], default=default, context=context)
       return test

or

def test_mdel(self, cr, uid, id, default=None, context=None):
            default={}
            test = self.copy_data(cr,uid, id[0], default=default, context=context)
           return self.create(cr, uid, test, context=context)

The above code after clicking the button create a new record with copy of same data. https://doc.openerp.com/6.0/developer/2_5_Objects_Fields_Methods/methods/

Avatar
Discard
Author

Ahh thanks ! it work !

Author Best Answer

Thanks for your help.

I try without ids parameter :

def test_mdel(self, cr, uid, id, default=None, context=None):

    default={}
    test = super(complement_sale_order, self).copy_data(cr,uid, id, default, context=context)

    return test

But i have other error :

TypeError: unhashable type: 'list'

for parameter id

Avatar
Discard

Updated the code