Odoo Help

0

Unable to write a value to an existing field

By
Tarek Mohamed Ibrahim
on 7/4/15, 9:34 AM 656 views

I got the following error message

TypeError: write() takes exactly 2 arguments (5 given) 

due to the following code

    def post(self,cr,uid,ids,context=None):
        o = self.browse(cr,uid,ids[0])
        budget_obj = self.pool.get('budget.expense').browse(cr,uid,o.budget_id.id)
        budget_line = self.pool.get('budget.expense.lines')
        for line in o.budget_transaction_line:
            for item in budget_obj.budget_expense_line:
                if line.item_id.id == item.item_id.id:
                    if line.tran_type in ('salary','expense'):           
                        if item.planned_amount - item.practical_amount - line.amount>=0: 
                            b_line = budget_line.browse(cr,uid,item.id)
                            vals = { 'practical_amount':item.practical_amount + line.amount,  }
                            b_line.write(cr,uid,[item.id],vals)

Don't care about all the method's lines, the problem is in the last bold line

Does anyone have an idea to resolve this error ?

1

Hello,

Please remove "cr, uid, [item.id] from last line, just simply keep as follows,

b_line.write(vals)

Reason : 

At this line : b_line = budget_line.browse(cr,uid,item.id) those 3 arguments are already loaded. So there is no need to provide them again at last line.

Warning : 
If "vals" dict contains the key which is not available as a field in "budget.expense.lines" model, then system will raise an error. ( This is only for knowledge purpose ).

If instead of this line b_line.write(cr,uid,[item.id],vals) you will write like self.pool.get("budget.expense.lines").write(cr,uid,[item.id],vals) then system will not raise an error. ( in case of if "vals" dict contains the key which is not available as a field in "budget.expense.lines" model )

thx for help. I tried the line "b_line.write(vals)" only, still need to try the other part of your solution

Tarek Mohamed Ibrahim
on 7/6/15, 2:46 AM

Sure !

Emipro Technologies Pvt. Ltd.
on 7/6/15, 2:50 AM

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

Register

Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

1 follower(s)

Stats

Asked: 7/4/15, 9:34 AM
Seen: 656 times
Last updated: 7/6/15, 2:45 AM