Odoo 中文社区

    • 注册
    • 登录
    • 搜索
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组

    Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

    开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

    如果您登录系统碰到问题,请在微信公众号留言:

    Odoo的Binary字段如何设置默认值?

    Odoo 培训
    binary field odoo技术
    1
    1
    312
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • digitalsatori
      digitalsatori 管理员 最后由 编辑

      Odoo的Binary字段默认保存的是Base64转码后的字符串。那么我们该如何为Binary字段设置默认值呢?比如一个默认的图片。答案当然是将图片文件的内容用Base64转码后赋给这个字段的default属性。

      方法1 :

      1. 比如你可以把一个图片用在线工具转码为Base64格式字符串:
      data:image/png;base64,iVRORw0KGgoBBBNSUhEUgAAAAEAAAABCAIAAACQd1PeAAAA.....................
      
      1. 去掉头部的data:image/png;base64,信息,把剩余的内容保存为默认值
      DEFAULT_IMG = 'iVRORw0KGgoBBBNSUhEUgAAAAEAAAABCAIAAACQd1PeAAAA.....................'
      
      class MyModel(models.Model):
          _name = 'my.model'
      
          field_binary = fields.Binary(default=DEFAULT_IMG)
      

      方法2:

      1. 将图片文件保存在模块目录下,比如:
        /my_module/static/img/my_image.png

      2. 设置默认值:

      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())
      

      【上海先安科技】(tony AT openerp.cn)

      1 条回复 最后回复 回复 引用 0
      • First post
        Last post