美文网首页pythonodoo
odoo 对many2many的控制

odoo 对many2many的控制

作者: 隔壁小红馆 | 来源:发表于2020-07-01 15:45 被阅读0次

想实现,添加进来的记录,在此模型其他地方是不能选中
简单来说:就是被选择数据在别的地方不能选择,删除被选择的数据恢复(可以被其他选择)
这就要求对 titanium_id 这个字段监控了,对增加的数据标记,对之前存在现在取消的数据恢复,
针对此情况,在 titanium_id 关联的模型里添加布尔值来控制是否已经被选择
因为考虑到同时有删有减的情况,故不能用 onchange来监控了,就用 create 和 write 来 记录增加的数据和已删除数据,方便对增加的数据和已删除数据 进行标记操作

话不多说,上才艺

image.png

atitanium_reduce :数据减少的操作
atitanium_add:数据增加的操作
create 以及 write 的写法一样

    def write(self, vals):
        if 'titanium_id' in vals:
            atitanium_reduce = list(set(self.titanium_id.ids).difference(set(vals['titanium_id'][0][2])))
            atitanium_add = list(set(vals['titanium_id'][0][2]).difference(set(self.titanium_id.ids)))
            for rec in atitanium_reduce:
                self.env['production.titanium.blank'].browse(rec).locked = False
            for rec in atitanium_add:
                self.env['production.titanium.blank'].browse(rec).locked = True
        return super(ProductionProductionPlan, self).write(vals)

这里也用到了列表的差异性,提取列表之间的不同的元素,

相关文章

  • odoo 对many2many的控制

    想实现,添加进来的记录,在此模型其他地方是不能选中简单来说:就是被选择数据在别的地方不能选择,删除被选择的数据恢复...

  • Odoo 数据导出 many2many 字段

    使用 Odoo 的时候,经常会有导出数据的需要。默认的导出往往不是我们想要的,比如导出 many2many tag...

  • odoo 对字段权限控制技巧

    odoo 的权限可以分为对模型,对记录,对字段,但是对字段的权限仅仅只能控制字段的只读,隐藏,必填,无法做到按权限...

  • Odoo权限控制

    除了使用自定义代码管理访问外,Odoo主要以数据驱动的方式进行权限管理。这种机制通过组与特定用户相关联:用户属于一...

  • Odoo(OpenERP)学习资源

    Odoo官方Odoo官网 https://www.odoo.com/Odoo源码 https://github.c...

  • Odoo企业微信 新版一键登录模块众筹

    Odoo企业微信模块介绍 Odoo实战项目一期 本期我们将一起实现一个odoo企业微信登录模块。 企业微信是微信对...

  • odoo eval for record

    One2many and Many2many use a special “commands” format to...

  • odoo 隐藏Many2many 的 “新建” 和One2ma

    对于Many2many 打开新form视图 隐藏“新建” 按钮, 隐藏后的效果 在xml 里面的字段添加 添加 o...

  • odoo 11正式发布

    odoo 8 重写了仓库,odoo 9 重写了财务, odoo 10 重写了生产,那么odoo 11 为我们带来了...

  • Odoo配置文件

    Odoo配置文件odoo.conf 源码中默认配置文件目录在 odoo/debian/odoo.conf; adm...

网友评论

    本文标题:odoo 对many2many的控制

    本文链接:https://www.haomeiwen.com/subject/vegcqktx.html