server 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 请用三个backtick ```包住你的代码以保持格式并实现语法高亮, 帮你改了一下。
base.automation其本质是创建钩子程序。比如你的代码实际上会插入到
write
方法中执行,write
方法是不能返回action的。[Edit] 最好不要在别人的贴子下面提问,应该开个新贴。
-
@digitalsatori
好的,谢谢校长。
我换种方法去实现吧。