关于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

相关文章

SpringBoot项目jar依赖问题报错解析

《SpringBoot项目jar依赖问题报错解析》本文主要介绍了SpringBoot项目中常见的依赖错误类型、报错内容及解决方法,依赖冲突包括类找不到、方法找不到、类型转换异常等,本文给大家介绍的非常... 目录常见依赖错误类型及报错内容1. 依赖冲突类错误(1) ClassNotFoundExceptio

MybatisPlus 多数据源切换@DS注解失效问题解决

《MybatisPlus多数据源切换@DS注解失效问题解决》在业务开发中使用到了多数据源,遇到了@DS注解失效问题,有两个场景使用到同一个@DS的查询方法,下面就来介绍一下该问题的解决,感兴趣的可以... 在业务开发中使用到了多数据源,遇到了@DS注解失效问题,有两个场景使用到同一个@DS的查询方法,一个正

Centos7 firewall和docker冲突问题及解决过程

《Centos7firewall和docker冲突问题及解决过程》本文描述了一个在CentOS7上使用firewalld和Docker容器的问题,当firewalld启动或重启时,会从iptable... 目录系统环境问题描述问题排查解决办法总结本文只是我对问题的记录,只能用作参考,不能China编程说明问题,请

Python在二进制文件中进行数据搜索的实战指南

《Python在二进制文件中进行数据搜索的实战指南》在二进制文件中搜索特定数据是编程中常见的任务,尤其在日志分析、程序调试和二进制数据处理中尤为重要,下面我们就来看看如何使用Python实现这一功能吧... 目录简介1. 二进制文件搜索概述2. python二进制模式文件读取(rb)2.1 二进制模式与文本

jdk1.8的Jenkins安装配置实践

《jdk1.8的Jenkins安装配置实践》Jenkins是一款流行的开源持续集成工具,支持自动构建、测试和部署,通过Jenkins,开发团队可以实现代码提交后自动进行构建、测试,并将构建结果分发到测... 目录Jenkins介绍Jenkins环境搭建Jenkins安装配置Jenkins插件安装Git安装配

JAVA Calendar设置上个月时,日期不存在或错误提示问题及解决

《JAVACalendar设置上个月时,日期不存在或错误提示问题及解决》在使用Java的Calendar类设置上个月的日期时,如果遇到不存在的日期(如4月31日),默认会自动调整到下个月的相应日期(... 目录Java Calendar设置上个月时,日期不存在或错误提示java进行日期计算时如果出现不存在的

Mybatis对MySQL if 函数的不支持问题解读

《Mybatis对MySQLif函数的不支持问题解读》接手项目后,为了实现多租户功能,引入了Mybatis-plus,发现之前运行正常的SQL语句报错,原因是Mybatis不支持MySQL的if函... 目录MyBATis对mysql if 函数的不支持问题描述经过查询网上搜索资料找到原因解决方案总结Myb

C#实现将XML数据自动化地写入Excel文件

《C#实现将XML数据自动化地写入Excel文件》在现代企业级应用中,数据处理与报表生成是核心环节,本文将深入探讨如何利用C#和一款优秀的库,将XML数据自动化地写入Excel文件,有需要的小伙伴可以... 目录理解XML数据结构与Excel的对应关系引入高效工具:使用Spire.XLS for .NETC

Nginx错误拦截转发 error_page的问题解决

《Nginx错误拦截转发error_page的问题解决》Nginx通过配置错误页面和请求处理机制,可以在请求失败时展示自定义错误页面,提升用户体验,下面就来介绍一下Nginx错误拦截转发error_... 目录1. 准备自定义错误页面2. 配置 Nginx 错误页面基础配置示例:3. 关键配置说明4. 生效

Nginx之https证书配置实现

《Nginx之https证书配置实现》本文主要介绍了Nginx之https证书配置的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起... 目录背景介绍为什么不能部署在 IIS 或 NAT 设备上?具体实现证书获取nginx配置扩展结果验证