如何从OpenERP7中的act_window调用Python函数?

问题描述 投票:0回答:2
python xml action odoo openerp-7
2个回答
1
投票

如果它是一个按钮,它会像这样工作,我怀疑你可以以同样的方式声明下面的选项 你的 XML

<button name="name_of_your_method_here" string="Invite partners" type="object"/>

你的Python:

def name_of_your_method_here(self,cr,uid,ids,context=None):
 #your functionality here
 return True

你也可以让python代码打开视图:

def name_of_your_method_here(self,cr,uid,ids,context=None):
 #your functionality here
 return {
    'name' : 'The name of your view',
    'res_model' : 'name_of_the_model',
    'view_mode': 'form',
    'view_type' : 'form',        
    'type': 'ir.actions.act_window',
    'target': 'new',
    } 

0
投票

我在更多item中找到了调用python代码的方法:

 <record id="action_confirm_all_server" model="ir.actions.server">
        <field name="name">Approve</field>
        <field name="model_id" ref="model_overtime_request"/>
        <field name="state">code</field>
        <field name="code">action = obj.action_confirm_all(context=context)</field>
    </record>

     <record id="ir_values_more_action_confirm" model="ir.values">
        <field eval="'client_action_multi'" name="key2"/>
        <field eval="'overtime.request'" name="model"/>
        <field name="name">Approve</field>
        <field eval="'ir.actions.server,%d'%action_confirm_all_server" name="value"/>
    </record>

Python代码:

    def action_confirm_all(self, cr, uid, ids, context=None):
    if context is None: context = {}
    _logger.info('server call')
    return {
    }
© www.soinside.com 2019 - 2024. All rights reserved.