создать кнопку на форме продукта в openerp

Я пытаюсь создать кнопку в форме продукта. вот мой xml

<record id="action_button" model="ir.actions.server">
    <field name="type">ir.actions.server</field>
    <field name="condition">True</field>
    <field name="state">code</field>
    <field name="model_id" ref="product_normal_form_view"/>
    <field eval="5" name="sequence"/>
    <field name="code">action=self.action_button(cr,uid, context)</field>                                                                                                       
</record>

=================

кнопка определена как

<group col="2" colspan="2">
    <button name="%(action_button)d" type="action"  string="Test Hello"/>
</group>

в файле python есть метод action_button

 def action_button(cr,uid,context):
        test={}
        modelname="Hello Usha"
        test['tryhello']=modelname
        return{'value':test}

=============

при нажатии кнопки я получаю сообщение об ошибке, атрибут temp_range не определен для action_button

пл. помогите, заранее спасибо

-Уша


person user1540295    schedule 11.09.2012    source источник


Ответы (2)


Попробуйте ниже код::

<record id="action_button" model="ir.actions.server">
    <field name="type">ir.actions.server</field>
    <field name="condition">True</field>
    <field name="state">code</field>
    <field name="model_id" ref="product_normal_form_view"/>
    <field eval="5" name="sequence"/>
    <field name="code">action=self.pool.get('product.product').action_button(cr, uid,  context
    </field> 

and make change also in py file where we the action_button method define

def action_button(self, cr, uid, context=None):
    test={}
    modelname="Hello usha"
    test['tryhello']=modelname
    return{'value':test}
person Community    schedule 12.09.2012
comment
текстовое поле остается пустым. На самом деле мне нужно преобразовать on_change в нажатие кнопки. У меня есть несколько раскрывающихся списков в форме продукта. Я должен сформировать название продукта, выбрав из выпадающих списков. Вы можете отправить свою учетную запись gmail/yahoo? ты над опенерпом работаешь? - person user1540295; 13.09.2012
comment
Текстовое поле @BandishDave остается пустым. На самом деле мне нужно преобразовать on_change в нажатие кнопки. У меня есть несколько раскрывающихся списков в форме продукта. Я должен сформировать название продукта, выбрав из выпадающих списков. Вы можете отправить свою учетную запись gmail/yahoo? ты над опенерпом работаешь? - person user1540295; 14.09.2012
comment
Да, я работаю над openerp.and [email protected] — это мой адрес электронной почты. - person ; 26.09.2012

Я попробовал ваш код, и после модификации он работает нормально, и метод также выполняется.

    <record id="action_button" model="ir.actions.server">
        <field name="type">ir.actions.server</field>
        <field name="name">Testing</field>
        <field name="condition">True</field>
        <field name="state">code</field>
        <field name="model_id" ref="model_product_product"/>
        <field eval="5" name="sequence"/>
        <field name="code">action=obj.action_button(context=context)</field>                                                                                                       
    </record>


def action_button(self, cr, uid, ids, context=None):
    #your code

Надеюсь, это решит вашу проблему.

person Sudhir Arya    schedule 12.09.2012
comment
мое текстовое поле остается пустым, оно не заполняется Hello Usha - person user1540295; 12.09.2012
comment
Я не понимаю, почему вы создаете ir.actions.server. Если вы хотите изменить значение своего поля, просто создайте простую кнопку, а в методе кнопки .py просто вызовите метод self.write(). В файле .xml определите свою кнопку следующим образом: ‹имя кнопки=тип кнопки_действия=строка объекта=Test Hello/> Вам не нужно определять ir.actions.server EX: return self.write(cr, uid, ids, {' имя': 'Уша'}, контекст=контекст) - person Sudhir Arya; 13.09.2012
comment
Я хотел протестировать кнопку, но на самом деле мне нужно преобразовать on_change в нажатие кнопки. У меня есть несколько раскрывающихся списков в форме продукта. Я должен сформировать название продукта, выбрав из выпадающих списков. Вы можете отправить свою учетную запись gmail/yahoo? ты над опенерпом работаешь? - person user1540295; 13.09.2012
comment
@ user1540295 да, я работаю над openerp. вы можете вызвать self.write() в своем методе, который вызывается из кнопки. - person Sudhir Arya; 16.09.2012