zoukankan      html  css  js  c++  java
  • Odoo中如何复制有唯一性约束的记录?

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9281393.html 

        如果为模型的字段添加了唯一性约束,那么在记录的form视图功能菜单上选择“复制”时就会报错。

        那么我们要在维持唯一性的前提下,保留复制功能,则只能重写模型的copy方法,在方法中为有唯一性约束的字段添加辨别性内容,使得纪录可以被成功复制(当然,新纪录中唯一性约束的字段时修改后的值,仍然唯一)

     def copy(self, default=None):
            default = dict(default or {})
    
           #统计数据库中已有多少个本纪录的副本
            copied_count = self.search_count(
                [('字段', '=like', u"Copy of {}%".format(self.字段))])
           #为副本中的字段值添加尾部修饰,维持唯一性
           #第一次复制:cpoy of 原字段值
            if not copied_count:
                new_字段 = u"Copy of {}".format(self.字段)
           #第n次复制:copy of 原字段值(次数)
            else:
                new_字段 = u"Copy of {} ({})".format(self.name, copied_count)
            #调用父类复制函数,并把新默认值传入
            default['字段名'] = new_字段
            return super(类名, self).copy(default)
  • 相关阅读:
    网络基础复习02
    网络基础复习01
    python 基础复习之数据库02
    python 基础复习之数据库01
    python 基础复习 13
    python基础复习 12
    python基础复习 11
    python基础复习10
    列表切片,内置方法
    文件操作基础流程
  • 原文地址:https://www.cnblogs.com/ygj0930/p/10826020.html
Copyright © 2011-2022 走看看