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

2024-04-24 09:58
文章标签 配置 数据 问题 odoo 模型

本文主要是介绍关于ODOO中配置模型中的数据问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

感谢【上海先安科技】digitalsatori 老师的指点

问:

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

答:

好问题。
我们一般会继承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类字段的设置值的方法。

希望对你理解有帮助

 

举例:

from odoo import api, fields, modelsclass ResConfigSettings(models.TransientModel):_inherit = 'res.config.settings'group_stock_allow_negative_inventory = fields.Boolean("Allow Negative Inventory",implied_group='roke_stock.group_allow_negative_inventory') # 使用 group_allow_negative_inventory_enabled = self.user_has_groups('模块名.group_allow_negative_inventory')

 

这篇关于关于ODOO中配置模型中的数据问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/931436

相关文章

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

全面解析MySQL索引长度限制问题与解决方案

《全面解析MySQL索引长度限制问题与解决方案》MySQL对索引长度设限是为了保持高效的数据检索性能,这个限制不是MySQL的缺陷,而是数据库设计中的权衡结果,下面我们就来看看如何解决这一问题吧... 目录引言:为什么会有索引键长度问题?一、问题根源深度解析mysql索引长度限制原理实际场景示例二、五大解决

Springboot如何正确使用AOP问题

《Springboot如何正确使用AOP问题》:本文主要介绍Springboot如何正确使用AOP问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录​一、AOP概念二、切点表达式​execution表达式案例三、AOP通知四、springboot中使用AOP导出

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左