跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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中配置模型中的数据问题

关于ODOO中配置模型中的数据问题

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
3 帖子 2 发布者 588 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • Z 离线
    Z 离线
    zerone40
    写于 最后由 编辑
    #1

    res.config.settings 是个瞬态的,会被定时清理。
    在这里设置的东西,被清理后,这些配置数据是怎么生效的????
    例如:在库存的设置中,我勾选了交货包裹这一项。一段时间后,这个res.config.settings被清理。清理后,我勾选的项依然有效,是什么原理?
    还有,我能否拿到配置中的某个字段,根据这个字段,在我的代码中做一些判断。
    谢谢

    1 条回复 最后回复
    0
    • digitalsatoriD 离线
      digitalsatoriD 离线
      digitalsatori 管理员
      写于 最后由 digitalsatori 编辑
      #2

      好问题。
      我们一般会继承res.config.settings来定义一些配置信息。 而res.config.settings是一个暂态模型(models.TransientModel)并不能长久保存数据,那数据是保存在什么地方的呢?

      简单回答,这些配置数据并不保存在同一个地方,很多设置的状态是通过动态判断来获得的。
      实际上当我们定义一个一个如下的配置类:

      class MyConfigWizard(models.TransientModel):
                      _name = 'my.settings'
                      _inherit = 'res.config.settings'
      
                      default_foo = fields.type(..., default_model='my.model'),
                      group_bar = fields.Boolean(..., group='base.group_user', implied_group='my.group'),
                      module_baz = fields.Boolean(...),
                      config_qux = fields.Char(..., config_parameter='my.parameter')
                      other_field = fields.type(...),
      

      可以看到配置类上的字段分以上5种类型, 也就是:

      • 名字以default_开头,系统会根据设置的值来设置全局的ir.default值
      • 名字以group_开头,系统会根据设置的值来配置res.group值
      • 名字以module_baz, 系统会根据设置,安装或卸载baz模块
      • 字段定义中包含config_parameter属性,系统将设置的值记录到ir.config_parameter表中,其key为config_parameter的值(上例中为:my.parameter), value为本配置字段的值
      • 其他字段,则需要继承set_value方法以设定存储的地点,而get_value中设置获取值的方法

      当打开配置界面时系统会自动调用res.config.settings类的default_get方法,而该方法定义了如何获取这5类字段的设置值的方法。

      希望对你理解有帮助

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

      Z 1 条回复 最后回复
      0
      • Z 离线
        Z 离线
        zerone40
        在 回复了 digitalsatori 最后由 编辑
        #3

        @digitalsatori 万分感谢先安科技!

        1 条回复 最后回复
        0

        • 登录

        • 没有帐号? 注册

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