从使用 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_tsprocess_ts 方法在 rw_project.model_rw_file_reader 模型中定义。

您只需调用 method_direct_trigger() 它应该调用 process_ts() 方法:

self.env.ref('project_name.ir_cron_save_timesheets').method_direct_trigger()