2015-11-16 3 views
1

Я пытаюсь переопределить создавать и копировать методы, чтобы всякий раз, когда я выполнить любого из этих методов моего порядкового номера автоинкрементируемый, вот создать метод:переопределить метод копирования для увеличения порядкового номера

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) 

любой идеи для метода копирования? спасибо.

+0

Вам не нужно переопределить метод «копировать», потому что он называет «создать» метод внутренне. –

ответ

0

Я попробовал это, и она работала:

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) 
1

Может я ошибаюсь, но вы не должны переопределить также скопировать, поскольку он вызывает создать: таким образом, перекрывая его должно быть достаточно.

+0

Вы правы, нет необходимости переопределять метод копирования, потому что он вызывает создание внутри. –

+0

Алессандро благодарит вас за ответ, но я уже пробовал это, и он не работает, я проверил метод копирования, и он не работает так, он вызывает создание, но некоторые строки необходимо добавить. –

+0

Итак, вы нашли решение? Не могли бы вы опубликовать его, чтобы помочь другим с той же проблемой? –

Смежные вопросы