如图所示,点击完复制后本应直接生成一张新的一模一样的表,但是有的字段不需要复制,有的字段可能会重名无法,混淆之前的和复制过后的,造成麻烦。
重写后的复制方法:
代码如下:py文件:
from odoo import fields, models, api, _
class mygrandson(models.Model):
_name = "mygrandson.mygrandson"
_description = "mygrandson模块"
_rec_name = "test_one"
test_one = fields.Char()
test_two = fields.Char()
test_three = fields.Char(copy=False)
test_mygrandson = fields.Many2one('mykid.mykid', string="测试多对一")
def copy(self, default=None):
if default is None:
default = {}
if not default.get('test_one'):
default['test_one'] = _("%s (Copy)") % self.test_one
default['test_two'] = ""
return super(mygrandson, self).copy(default)
需要注意点:
1.此字段禁止复制
test_three = fields.Char(copy=False)
2.重载的部分,test_one字段后加(copy)保护。
if not default.get('test_one'):
default['test_one'] = _("%s (Copy)") % self.test_one
3.重载后清空test_two字段的值
default['test_two'] = ""
重启升级即可