覆盖复制方法以增加序列号

override copy method to increment sequence number

我正在尝试覆盖创建和复制方法,以便每当我执行任何这些方法时,我的序列号都会自动递增,这是创建方法:

def create(self, cr, uid, vals, context=None):
    if context is None:
        context = {}
    data_obj = self.pool.get('ir.model.data')
    sequence_ids = data_obj.search(cr, uid, [('name','=','seq_tour_booking')], context=context)
    sequence_id = data_obj.browse(cr, uid, sequence_ids[0], context=context).res_id
    if vals.get('name','/') =='/':
        code = self.pool.get('ir.sequence').get_id(cr, uid, sequence_id, 'id', context) or '/'
        vals['name'] = code
    return super(tour_booking, self).create(cr, uid, vals, context=context)

对复制方法有什么想法吗? 谢谢。

也许我错了,但你不应该也需要覆盖 copy 因为它调用 create: 因此覆盖它应该够了。

我试过了,它成功了:

def copy(self, cr, uid, id, default=None, context=None):
    if default == None:
        default = {}
    default['name'] = self.pool.get('ir.sequence').get(cr, uid,'your.object.name')
    return super(your_class_name, self).copy(cr, uid, id, default, context=context)