server action 调用方法无效
-
@wangyuhui
我的好像是方法重名了,其他的没注意还有什么问题。 -
我用的是base.automation这个模型,和ir.actions.server还有点不一样。我要实现的是到某个状态时,自动弹出窗口,base.automation触发不了窗口弹出。
@wangyuhui 贴下代码看看吧。
-
< record id="sync_method" model="base.automation"> < field name="name">Synchronize</field> < field name="model_id" ref="crm.model_crm_lead"/> < field name="trigger">on_write</field> < field name="filter_pre_domain" eval="[('stage_id', '=', ref('crm.stage_lead4'))]"/> < field name="filter_domain" eval="[('stage_id', '=', ref('crm.stage_lead4'))]"/> < field name="active" eval="True"/> < field name="state">code</field> < field name="code"> if records: action = records.sync() < /field> < /record>@api.multi def sync(self): action = self.env.ref('my_crm.action_my_crm').read()[0] wizard_id = self.env['my_crm'].create({'lead_id': self.id}) action['views'] = [(self.env.ref('my_crm.view_form_my_crm').id, 'form')] action['res_id'] = wizard_id.id return action -
< record id="sync_method" model="base.automation"> < field name="name">Synchronize</field> < field name="model_id" ref="crm.model_crm_lead"/> < field name="trigger">on_write</field> < field name="filter_pre_domain" eval="[('stage_id', '=', ref('crm.stage_lead4'))]"/> < field name="filter_domain" eval="[('stage_id', '=', ref('crm.stage_lead4'))]"/> < field name="active" eval="True"/> < field name="state">code</field> < field name="code"> if records: action = records.sync() < /field> < /record>@api.multi def sync(self): action = self.env.ref('my_crm.action_my_crm').read()[0] wizard_id = self.env['my_crm'].create({'lead_id': self.id}) action['views'] = [(self.env.ref('my_crm.view_form_my_crm').id, 'form')] action['res_id'] = wizard_id.id return action@wangyuhui
我没用过这个模型,我没有找到base.automation这个模型啊,有个ir.cron的处理自动化的。 -
@wangyuhui
我没用过这个模型,我没有找到base.automation这个模型啊,有个ir.cron的处理自动化的。 -
< record id="sync_method" model="base.automation"> < field name="name">Synchronize</field> < field name="model_id" ref="crm.model_crm_lead"/> < field name="trigger">on_write</field> < field name="filter_pre_domain" eval="[('stage_id', '=', ref('crm.stage_lead4'))]"/> < field name="filter_domain" eval="[('stage_id', '=', ref('crm.stage_lead4'))]"/> < field name="active" eval="True"/> < field name="state">code</field> < field name="code"> if records: action = records.sync() < /field> < /record>@api.multi def sync(self): action = self.env.ref('my_crm.action_my_crm').read()[0] wizard_id = self.env['my_crm'].create({'lead_id': self.id}) action['views'] = [(self.env.ref('my_crm.view_form_my_crm').id, 'form')] action['res_id'] = wizard_id.id return action@wangyuhui 请用三个backtick ```包住你的代码以保持格式并实现语法高亮, 帮你改了一下。
base.automation其本质是创建钩子程序。比如你的代码实际上会插入到
write方法中执行,write方法是不能返回action的。[Edit] 最好不要在别人的贴子下面提问,应该开个新贴。
-
@wangyuhui 请用三个backtick ```包住你的代码以保持格式并实现语法高亮, 帮你改了一下。
base.automation其本质是创建钩子程序。比如你的代码实际上会插入到
write方法中执行,write方法是不能返回action的。[Edit] 最好不要在别人的贴子下面提问,应该开个新贴。
@digitalsatori
好的,谢谢校长。
我换种方法去实现吧。 -
@wangyuhui
我没用过这个模型,我没有找到base.automation这个模型啊,有个ir.cron的处理自动化的。 -
@wangyuhui 客气,等你实现了分享分享。
