Skip to Content
Menu
This question has been flagged
3 Replies
1569 Views
compta_file.close()
fp = BytesIO()
# workbook.save(fp)
attach_id = self.env['ir.attachment'].sudo().create(
{'name': self.writing_file_transfer+ str(self.id) + '.csv', 'type': 'binary', 'public': True,
'datas': base64.encodebytes(fp.getvalue()), })
Avatar
Discard
Best Answer

Hi,

In Odoo, if a field (like self.writing_file_transfer) has no value set, it defaults to False, which is a boolean. When Python reaches the line

self.writing_file_transfer + str(self.id) + '.csv'

It tries to do False + "123.csv", but Python cannot add a boolean to a string, so it raises TypeError. In other words, the error is not because the code itself is wrong, but because the field has no value (so it became False) and Python doesn’t know how to concatenate False with text. To fix this, you must explicitly handle the case when the field is empty, e.g. str(self.writing_file_transfer or ''), so it uses an empty string instead of False.


Hope it helps.

Avatar
Discard
Best Answer

Hello Gowtham A,


I hope you're doing well.


The error occurs because self.writing_file_transfer is a boolean (True or False), and you're trying to concatenate it with a string   (str(self.id) + '.csv'). Since Python does not allow direct concatenation of a boolean and a string, it raises a TypeError.


Convert self.writing_file_transfer to a string before concatenation:

{'name': str(self.writing_file_transfer) + str(self.id) + '.csv', 'type': 'binary', 'public': True,

'datas': base64.encodebytes(fp.getvalue()), }


I hope this resolves your issue.


Thanks & Regards,

Email:  odoo@aktivsoftware.com           

Skype: kalpeshmaheshwari

Avatar
Discard
Best Answer

if you check type of 

self.writing_file_transfer	

its may Boolean and you are trying to add Boolean and string 
try this :

str(self.writing_file_transfer)
Avatar
Discard
Related Posts Replies Views Activity
0
May 24
1799
1
Aug 22
2640
4
Sep 25
911
2
Aug 25
663
1
Aug 25
451