odoo10学习笔记四:onchange、唯一性约束
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189273.html
一:onchange机制【onchange=前端js函数!可以实现前端实时更新以及修改验证】
onchange机制:不需要保存数据到数据库就可以实时更新用户界面上的显示。
@api.onchange('监听的字段', '监听的字段'。。。)
def _onchange_受影响的字段(self):
# set auto-changing field
self.受影响的字段 = 根据监听字段计算出受影响字段的值
也可以监控某字段值的变化,如果异常则报错:


@api.onchange('监听的字段')
def _verify_监听字段(self):
if 监听字段值异常:
return {
'warning': {
'title': "异常类型",
'message': "具体异常信息",
},
}


二:模型字段约束
python约束:使用装饰器,@api.constrains('约束字段')
Python约束通过方法装饰器constraints()来定义,并在记录集上调用这个方法。
装饰器参数指定了约束涉及的字段,当涉及的字段中任一发生改变时触发方法执行。如果不满足约束条件,该方法将引发异常。
@api.constrains('约束字段')
def _check_something(self):
for record in self:
if record.约束字段 op 值:
raise ValidationError("异常信息")
sql约束:使用_sql_constraints属性。
属性值是一个列表,每一个列表元素有三个内容:(name, sql_definition, message):
name是约束字段名
sql_definition是一个postgresql语句,检查该字段值
message是校验失败时返回的错误消息


_sql_constraints = [
('name',
'CHECK(name op 值)',
"异常信息"), ('name',
'sql语句',
"异常信息"),
]


odoo10学习笔记四:onchange、唯一性约束的更多相关文章
- MySql学习笔记四
MySql学习笔记四 5.3.数据类型 数值型 整型 小数 定点数 浮点数 字符型 较短的文本:char, varchar 较长的文本:text, blob(较长的二进制数据) 日期型 原则:所选择类 ...
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(四) indigo devices
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- SQL反模式学习笔记5 外键约束【不用钥匙的入口】
目标:简化数据库架构 一些开发人员不推荐使用引用完整性约束,可能不使用外键的原因有一下几点: 1.数据更新有可能和约束冲突: 2.当前的数据库设计如此灵活,以至于不支持引用完整性约束: 3.数据库为外 ...
- Typescript 学习笔记四:回忆ES5 中的类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- ES6学习笔记<四> default、rest、Multi-line Strings
default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...
- muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制
目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...
随机推荐
- react中antd的表格自定义展开
antd的表格官方案例中给出的都是固定的图表展开,在做需求的时候,需要使用点击最后一列,然后出现展开内容,实现效果图如下 在最开始设置一个全局变量 const keys = [];在设置列参数的函数中 ...
- show()和隐藏hide() slideDown()和 slideUp() fadeIn()和fadeOut()
1==>显示show()和隐藏hide() 是一组动画 与切换toggle()$("div").show():当不传递参数时,没有动画效果,它将某个元素瞬间显示出来 $(&q ...
- 201871010111-刘佳华《面向对象程序设计(java)》第十一周学习总结
201871010111-刘佳华<面向对象程序设计(java)>第十一周学习总结 实验九 泛型程序设计技术 实验时间 2019-11-8 1.实验目的与要求 (1) 理解泛型概念: (2 ...
- 201871010113-刘兴瑞《面向对象程序设计(java)》第二周学习总结
项目 内容 这个作业属于哪个课程 <任课教师博客主页链接> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址> ...
- 【BZOJ3171】[TJOI2013] 循环格(网络流)
点此看题面 大致题意: 给你一个循环格,每个格子有一个方向.问你至少修改多少格子,才能使从每个格子出发都能回到原格子. 建图 这是道网络流题目,主要就是考虑如何建图. 我们可以把每个点拆成两个点,一个 ...
- tensorflow之tf.meshgrid()
tf.meshgrid()用于从数组a和b产生网格.生成的网格矩阵A和B大小是相同的,它也可以是更高维的. 用法:[A, B] = tf.meshgrid(a, b), 生成size(b) x siz ...
- Entity Framework Core 练习参考
项目地址:https://gitee.com/dhclly/IceDog.EFCore 项目介绍 对 Microsoft EntityFramework Core 框架的练习测试 参考文档教程 官方文 ...
- 一些优秀的 Entity Framework 开源项目
增加全局过滤的项目(比如:IsDeleted 字段):https://github.com/zzzprojects/EntityFramework.DynamicFilters 谢谢浏览!
- Linux SELinux 介绍详解
Linux SELinux 介绍详解 SElinux 简介 SElinux (Security Enhanced Linux)是由美国国家安全局(NSA)开发的.它已被植入到了Linux系统的内核当中 ...
- virsh console hangs at the escape character “^]”
I am trying to kickstart a newly built VM. I am stuck with the following. Want to start with a conso ...