跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 培训
  4. Odoo的Binary字段如何设置默认值?

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

已定时 已固定 已锁定 已移动 Odoo 培训
binary fieldodoo技术
1 帖子 1 发布者 663 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • digitalsatoriD 离线
    digitalsatoriD 离线
    digitalsatori 管理员
    写于 最后由 编辑
    #1

    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

    • 登录

    • 没有帐号? 注册

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组