server action 调用方法无效
-
进行excel数据上传到数据库:
方法一,通过点击一个按钮调用方法import_data()
打开一个wizard
进行文件上传,然后写入数据库,可以顺利进行。方法二,写一个
server action
,然后也调用方法import_data()
,但是没效果,这两个有什么区别吗?server action
怎么实现这个效果呢?方法
import_data()
代码如下:@api.multi def batch_import(self): if self.env.user: action = self.env.ref('upi.action_import_wizard').read()[0] return action else: raise ValidationError("You can't click this button !")
-
< 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
好的,谢谢校长。
我换种方法去实现吧。