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

На моей странице продукта есть поле «Номер товара» (код по умолчанию), обведенное кружком на прикрепленном изображении. Мой вопрос заключается в том, как я могу передать этот номер элемента во всплывающее окно, которое отображается, когда я нажимаю кнопку «Дополнительно» и выбираю «Заменить все в спецификации», также обведенное кружком на прикрепленном изображении. Я попытался добавить поле «default_code» во всплывающее окно, но оно просто отображает пустое поле. Спасибо за вашу помощь!

Вот основной вид:

введите здесь описание изображения

И вот мой XML-код:

<record id="replace_all_in_BOM_form" model="ir.ui.view">
            <field name="name">replace.all.in.BOM.form</field>
            <field name="model">product.template</field>
            <field name="priority" eval="20"/>
            <field name="type">form</field>
            <field name="arch" type="xml">  
                <field name="default_code" string="Item Number" readonly="0" invisible="0" /> 
            </field> 
         </record>

         <record id="action5" model="ir.actions.act_window">
            <field name="name">Replace all in BOM</field>
            <field name="type">ir.actions.act_window</field>
            <field name="res_model">product.template</field>            
            <field name="view_type">form</field>
            <field name="target">new</field>
            <field name="view_id" ref="replace_all_in_BOM_form"/>
        </record>

person SmithMcPatrick    schedule 21.01.2015    source источник


Ответы (1)


Вам нужно написать default_get в этом всплывающем объекте.

попробуй с этим,

def default_get(self, cr, uid, fields, context=None):
    product_obj = self.pool.get('product.product')
    record_ids = context and context.get('active_ids', []) or []
    res = super(product_product, self).default_get(cr, uid, fields, context=context)

    for product in product_obj.browse(cr, uid, record_ids, context=context):
        if 'default_code' in fields:
            #in 'default_code' is a field name of that pop-up window
            res.update({'default_code': product.default_code})

    return res
person Bhavesh Odedra    schedule 22.01.2015
comment
Только изменение заменит res = {} вызовом super default_get, иначе вы можете пропустить другие значения по умолчанию. - person Adrian Merrall; 23.01.2015
comment
Спасибо, да согласен с вами. Но другого поля у нас нет, поэтому я просто поставил {}. Хорошо, спасибо, я обновлю это. - person Bhavesh Odedra; 23.01.2015