Odoo8.0环境中,限制Selection字段的有效值

本文介绍如何在Odoo中自定义Selection字段,通过在XML定义中添加opt_disable属性,实现在用户界面中禁用特定选项的功能。该方法适用于需要限制用户选择范围的场景,同时确保旧数据的完整性。

今天有群里的小伙伴咨询,一个字段是Selection类型,可能会有多个可选择的项目,但在某个界面中,不想用户选择全部可选项,只希望在某几个选项中选择。如果是Many2one字段,我们可以根据domain来过滤可选项,但Selection目前没有这个过滤功能,所以我自己加了一个js模块,来实现此需求。

首先我们来看一个字段的定义是这样子的:

lab_kind = fields.Selection([("ddtn",u"自检"),("rd",u"研发"),("external",u"外送")],string=u"检测方式",default="ddtn")

正常来看,用户是可以选择三个项目的任意一个,我在xml定义中加了一个属性值,如下:

<field name="lab_kind" required="1" opt_disable="rd,ddtn"/>

增加的opt_disabled是用来指定用户界面上哪几个项目不允许选择,多个项目值可以用逗号分隔。

打开操作界面,用户在编辑或新增时,看到的效果如下图:

图片

前面两个选项会进行disabled,可以看到,但不可以选择。本来开始是想把不可选的项目过滤掉不显示,但考虑到有些字段的default值,或旧数据的值可能会是被过滤的值,如果不显示出来,可能会有错误,所以最终的效果改为不影响旧的记录,但新的资料不可以选择这样的效果。

模块下载地址为:https://download.youkuaiyun.com/download/vnsoft/10755608

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值