Odoo Help


Add a image (stored in database) in python/xml file

on 8/24/13, 3:33 PM 8,443 views

Hi everybody,

I would like to add an image to a xml file.

This image is stored on the database (like res_partner.image).

How is possible to print this image on a xml file?

It will be nice to have this image with a sql request (cr.execute) and convert it in binary or in picture in order to have the possibility to print it.

Thank you a lot


<img t-att-src="widget.get_image_url(category)" />

tamo harold
on 2/24/14, 8:27 AM

Vasiliy Birukov

--Vasiliy Birukov--
| 7 6 8
Russian Federation
--Vasiliy Birukov--

Help develop and implement any project on base Odoo.

Vasiliy Birukov
On 8/29/13, 2:51 AM

You can load your image in any form that have image field (for example Product). And then export this field to CSV file. Open CSV file in Excel and copy data of image in ANSII text format. After it paste data to your XML file.

You can use features "encodestring" and "decodestring" of base64 module in python to do this.

OpenERP Vietnam
on 8/30/13, 6:26 AM

Daniel Reis

--Daniel Reis--
| 7 8 9
Linda-a-Velha, Portugal
--Daniel Reis--

Author of the "Odoo Development Essentials" book.

Applications Manager at Securitas Portugal

Github: https://github.com/dreispt

Twitter; @reis_pt

Daniel Reis
On 9/5/13, 6:54 AM

It is, and you can find examples in the standard modules. The trick is to convert the image to base64. Yiou can find a tool, do it with a small Python script, or even use a website service for that (there are several on the web).

For an example have a look at addons/base/res/res_partner_demo.xml.

Dear Daniel Reis, thank your for your help. I don't find other function. I try this cr.execute('SELECT res_company.logo_web FROM res_company') res = cr.fetchall() v['logoTmp'] = base64.decodestring(str(res[0])), and others fonctions without results. Have you some idea please? Thanks a lot!

on 9/10/13, 5:53 PM
On 8/31/13, 10:50 AM

Hi wowas, OpenERP Vietnam,

Thank you, really, for your help. I will be more precise about my problem: I use the code below:

cr.execute('SELECT res_company.logo_web FROM res_company') res = cr.fetchall() v['logo_Print'] = res[0]

I would to put in the field logo_Print, the picture that is stored in the table: res_company, field logo_web, id = one. I think that maybe there is an fonction to translate bytea image (field in database) into binary in my python code, no?

Thnak you!


[Edit] Now, i try with :

cr.execute('SELECT res_company.logo_web FROM res_company') res = cr.fetchall() v['logoTmp'] = base64.decodestring(str(res[0]))

But still doesn't work, any idea please? How is possible to convert an "tuple" into a string? Or maybe, need i to get the picture differently?


Hi Selverine, python will translate from bytea (in database) into <type 'buffer'> in your python code.

OpenERP Vietnam
on 8/31/13, 11:56 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.


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

0 follower(s)


Asked: 8/24/13, 3:33 PM
Seen: 8443 times
Last updated: 3/16/15, 8:10 AM