Odoo的Binary字段如何设置默认值?
- 
Odoo的Binary字段默认保存的是Base64转码后的字符串。那么我们该如何为Binary字段设置默认值呢?比如一个默认的图片。答案当然是将图片文件的内容用Base64转码后赋给这个字段的 default属性。方法1 : - 比如你可以把一个图片用在线工具转码为Base64格式字符串:
 data:image/png;base64,iVRORw0KGgoBBBNSUhEUgAAAAEAAAABCAIAAACQd1PeAAAA.....................- 去掉头部的data:image/png;base64,信息,把剩余的内容保存为默认值
 DEFAULT_IMG = 'iVRORw0KGgoBBBNSUhEUgAAAAEAAAABCAIAAACQd1PeAAAA.....................' class MyModel(models.Model): _name = 'my.model' field_binary = fields.Binary(default=DEFAULT_IMG)方法2: - 
将图片文件保存在模块目录下,比如: 
 /my_module/static/img/my_image.png
- 
设置默认值: 
 import base64 from odoo import models, fields from odoo import modules def get_default_img(): with open(modules.get_module_resource('my_module', 'static/img', 'my_image.png'), 'rb') as f: return base64.b64encode(f.read()) class MyModel(models.Model): _name = 'my.model' field_binary = fields.Binary(default=get_default_img())
