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

时间:2014-11-19 15:09:25

标签: python xml action openerp openerp-7

我在屏幕顶部(视图)的菜单更多中添加了一个新选项。为此,我在XML中执行了act_window

<act_window name="Invite partners to an event"
     res_model="mail.compose.message"
     src_model="event.registration"
     view_mode="form"
     multi="True"
     target="new"
     id="invite_partner_to_event"/>

一切正常,我可以选择event.registration树视图的行,点击更多,然后选择 邀请合作伙伴参加活动 出现。当我点击它时,模型mail.compose.message的表单视图会在弹出窗口中打开,这正是我想要的。

现在我的问题:当我点击我的选项时,我想执行Python函数(并且用户不必注意到这一点)。 I.E。:用户将无法感受到差异,但我会通过该功能修改后端的几个内容。

¿我怎么能管理这个?提前谢谢。

1 个答案:

答案 0 :(得分: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

你也可以让pythoncode打开视图:

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',
    }