ODOO 开发异步限制规范【表单类】

简介: ODOO 开发异步限制规范【表单类】异步类型一:同时操作异步;描述:两个访问者,同时对一张表单进行编辑。可能出现异步,导致最终存值出错。故此,需要在表单方法中添加检测是否有其他人在操作。【未来,需要添加此表单正在被 N 人浏览及此表单正在被 partner_id 改写,等前端显示功能】ODOO 框架支持并发控制,以防止由于同一文档的并发修改而导致数据丢失,即使这不是一个常见的问题(请参见下面的原因)。

ODOO 开发异步限制规范【表单类】

异步类型一:同时操作异步;

image

描述:两个访问者,同时对一张表单进行编辑。可能出现异步,导致最终存值出错。故此,需要在表单方法中添加检测是否有其他人在操作。

【未来,需要添加此表单正在被 N 人浏览及此表单正在被 partner_id 改写,等前端显示功能】

ODOO 框架支持并发控制,以防止由于同一文档的并发修改而导致数据丢失,即使这不是一个常见的问题(请参见下面的原因)。

该机制是通过乐观并发控制(OCC)实现的,并且自 Openerp5.0 开始就存在。不使用悲观锁,因为在无状态的基于 Web 的环境中(用户可以随时离开桌面)是不现实的, 而且在资源争用方面通常是一个不好的解决方案。大多数具有并发控制机制的现代框架都使用 OCC(Rails、Google 应用程序引擎等)。

实现方式;

ODOO 的 OCC 实现依赖于虚拟的 last_update 字段的使用,客户机可以在任何模型上作为常规 read()调用的一部分显式请求该字段。该值将从写入日期自动推断,并创建框架在任何记录上默认维护的日期字段。

当客户机稍后对同一条记录进行 write()调用时,它可以传递包含原始上次更新值的额外上下文结构,如果同时更新了记录,系统将自动引发错误。有关 last_update

详细信息,请参阅 _check_concurrency()方法。

当发生这种情况时,客户机堆栈可以做出适当的反应,例如显示记录详细信息并询问用户她想强制更新(在这种情况下,可以简单地更新最后一次更新的值)或放弃她的本地更改。

image
image

异步类型二:安装模块异步;
image

描述:在实际生产环境中,会出现系统运行时,安装模块的情况。这时,模块会把一些默认的值写入数据库,但没有更新缓存。

【因此,需要强制添加缓存更新方法】

为了保障:ODOO 在以下方法中,添加为了更新缓存,_cache.update

image

create 方法
new 方法
write 方法
_prefetch_field 方法

image
image
image

目录
相关文章
|
5月前
|
JSON 前端开发 API
Django 后端架构开发:通用表单视图、组件对接、验证机制和组件开发
Django 后端架构开发:通用表单视图、组件对接、验证机制和组件开发
78 2
|
5月前
|
开发框架 JSON 缓存
基于SqlSugar的开发框架循序渐进介绍(22)-- Vue3+TypeScript的前端工作流模块中实现统一的表单编辑和表单详情查看处理
基于SqlSugar的开发框架循序渐进介绍(22)-- Vue3+TypeScript的前端工作流模块中实现统一的表单编辑和表单详情查看处理
|
8月前
|
移动开发 小程序 JavaScript
【uniapp 小程序开发页面篇】代码编写规范 | 页面编写规范 | 小程序API
【uniapp 小程序开发页面篇】代码编写规范 | 页面编写规范 | 小程序API
424 0
|
安全 中间件 开发者
【Django学习笔记 - 9】:装饰器在类视图中的使用、中间件(开发中间件)、知识点小补充(子应用的集中管理)
【Django学习笔记 - 9】:装饰器在类视图中的使用、中间件(开发中间件)、知识点小补充(子应用的集中管理)
414 9
【Django学习笔记 - 9】:装饰器在类视图中的使用、中间件(开发中间件)、知识点小补充(子应用的集中管理)
|
PHP 索引
最为常用的Laravel操作(3)-模板
整理了 Laravel 框架模板最常用的操作,如模板常用语法、模板继承、流程控制、循环等。本系列共有 3 篇文章。
83 0
|
Python
Django框架开发004期 Python编程调用自定义Django框架template模板网页
Django框架开发004期 Python编程调用自定义Django框架template模板网页
139 0
|
JavaScript
【Vue 开发实战】实战篇 # 40:自己封装一个支持自动校验的表单项
【Vue 开发实战】实战篇 # 40:自己封装一个支持自动校验的表单项
154 0
【Vue 开发实战】实战篇 # 40:自己封装一个支持自动校验的表单项
|
存储 安全 PHP
【Laravel】在企业级项目中使用Laravel框架中的工厂状态下的页面方法 Code Verifier以及错误处理
【Laravel】在企业级项目中使用Laravel框架中的工厂状态下的页面方法 Code Verifier以及错误处理
132 0
【Laravel】在企业级项目中使用Laravel框架中的工厂状态下的页面方法 Code Verifier以及错误处理
|
JSON 前端开发 测试技术
【测试开发】十三、接口测试-接口定义功能-前端-实现动态增删表单
【测试开发】十三、接口测试-接口定义功能-前端-实现动态增删表单
|
SQL 前端开发 IDE