Как получить значения всплывающего окна из другой модели?

Я создаю кнопку на модели sale.order.line, когда при нажатии открывается всплывающее окно, это представление находится в stock.picking.form. Проблема в том, что когда я открываю всплывающее окно, отображается пустая форма. И я хочу, чтобы во всплывающем окне отображались данные, которые я ввожу в форму sale.order.line. Например: название продукта, количество, имя клиента и т. д. введите здесь описание изображениявведите здесь описание изображения

Это моя кнопка в моем представлении.xml:

<button name="action_stock_picking" string="Inventario" type="object" icon="fa-arrow-right"/>

И это моя функция кнопки, которая открывает всплывающее окно:

@api.multi
def action_stock_picking(self):
    self.ensure_one()
    picking_form = self.env.ref('stock.view_picking_form', False)
    ctx = dict(
        default_model='stock.picking',
        default_res_id=self.id,
        default_composition_mode='comment',
        mark_invoice_as_sent=True,
    )
    return {
        'name': _('Formulario de Inventario: Recepciones'),
        'type': 'ir.actions.act_window',
        'view_type': 'form',
        'view_mode': 'form',
        'res_model': 'stock.picking',
        'views': [(picking_form.id, 'form')],
        'view_id': picking_form.id,
        'target': 'new',
        'context': ctx,
    }

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


person beriliox    schedule 22.03.2016    source источник


Ответы (1)


Действительно, вы можете установить данные по умолчанию, используя контекст. Синтаксис прост:

default_fieldx : val

Пример установки имени продукта по умолчанию в вашем мастере, добавьте эту строку в свой код

ctx = dict(
    default_name : self.name,
    default_model='stock.picking',
    default_res_id=self.id,
    default_composition_mode='comment',
    mark_invoice_as_sent=True,
)
person Motez    schedule 22.03.2016
comment
если я хочу добавить название продукта в строку всплывающего окна, как показано на предыдущем изображении? Как я мог это сделать? - person beriliox; 22.03.2016