Как объединить лот/Серийный номер

#view #odoo #wizard #odoo-12

Вопрос:

Я хочу добавить мастер с Many2many полем 'stock.production.lot' отображения только записей ,с Lot/Serial Number помощью которого я выполнял функцию, получающую фильтрованные записи, теперь мне нужно отобразить ее

 class DoublingNumber(models.TransientModel):
    _name = 'doubling.number'
    

    double_number_id =fields.Many2many('stock.production.lot' ,string="Numéros en doublant" )

     @api.multi
        def _default_double_number(self):
            log.warning("Hola")
            double_record = []
            records =self.env['stock.production.lot'].search([])
            for record in records :
                for record2 in records :
                    if record.name == record2.name and record.product_id != record2.product_id :
    
                        double_record.append(record2)    
                         
                        break
            return double_record
 

Теперь, как это отобразить ??!

Комментарии:

1. Вы можете использовать ключевое слово по умолчанию, чтобы указать функцию, которая вычисляет значение double_number_id поля и возвращает набор записей. Вы можете найти пример в модуле календарь , функция определена в строке 585

Ответ №1:

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

 class DoublingNumber(models.TransientModel):
    _name = 'doubling.number'

    @api.model
    def _default_double_number(self):
        log.warning("Hola")
        double_record = self.env['stock.production.lot']
        records =self.env['stock.production.lot'].search([])
        for record in records :
            for record2 in records :
                if record.name == record2.name and record.product_id != record2.product_id :

                    double_record  = record2  
                     
                    break
        return double_record
    
    double_number_id =fields.Many2many('stock.production.lot' ,string="Numéros en doublant", default = _default_double_number)
 

Удачи 🙂

Комментарии:

1. Большое вам спасибо ,это работает как волшебство !