从使用 odoo 12 中的 python 的方法执行 cron 作业
Execute a cron job from a method using python in odoo 12
我想在单击按钮时在方法执行结束时执行一个 Cron 作业,我读到 this post 其中明确提到 运行 一个方法,但它不是'不适合我。
到目前为止,这是我得到的:
我的 cron 作业
<record id="ir_cron_save_timesheets" model="ir.cron">
<field name="name">Save timesheets</field>
<field name="model_id" ref="rw_project.model_rw_file_reader"/>
<field name="type">ir.actions.server</field>
<field name="state">code</field>
<field name="code">model.process_ts()</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
</record>
在最后的按钮代码中我想执行这个:
self.env.ref('project_name.ir_cron_save_timesheets').process_ts()
在模型中,我确实有一个名为 process_ts
的方法名称
我得到的错误是:
AttributeError: 'ir.cron' object has no attribute 'process_ts'
如果我删除 process_ts 它不会被执行
您试图在错误的 cron 记录上调用 process_ts
,process_ts
方法在 rw_project.model_rw_file_reader
模型中定义。
您只需调用 method_direct_trigger()
它应该调用 process_ts()
方法:
self.env.ref('project_name.ir_cron_save_timesheets').method_direct_trigger()
我想在单击按钮时在方法执行结束时执行一个 Cron 作业,我读到 this post 其中明确提到 运行 一个方法,但它不是'不适合我。
到目前为止,这是我得到的:
我的 cron 作业
<record id="ir_cron_save_timesheets" model="ir.cron">
<field name="name">Save timesheets</field>
<field name="model_id" ref="rw_project.model_rw_file_reader"/>
<field name="type">ir.actions.server</field>
<field name="state">code</field>
<field name="code">model.process_ts()</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
</record>
在最后的按钮代码中我想执行这个:
self.env.ref('project_name.ir_cron_save_timesheets').process_ts()
在模型中,我确实有一个名为 process_ts
的方法名称我得到的错误是:
AttributeError: 'ir.cron' object has no attribute 'process_ts'
如果我删除 process_ts 它不会被执行
您试图在错误的 cron 记录上调用 process_ts
,process_ts
方法在 rw_project.model_rw_file_reader
模型中定义。
您只需调用 method_direct_trigger()
它应该调用 process_ts()
方法:
self.env.ref('project_name.ir_cron_save_timesheets').method_direct_trigger()