如何创建带参数的Openerp调度方法?

1 投票
1 回答
2753 浏览
提问于 2025-04-17 14:17

我为OpenERP 7.0创建了一个新的模块,这个模块基本上是一个调度器动作的占位符。

当我用下面的代码创建我的方法时:

def _method_name(self, cr, uid):

一切都运行得很好。但是我需要一些额外的参数。我用了这个:

def _method_name(self, cr, uid, arg1, arg2, arg3, arg4):

这样应该可以吧?说实话,我也不太确定。

另外,我不知道在OpenERP的调度器动作的参数行里该写什么。我需要传递self、cr、uid这些吗?还是只传递我自己的参数就可以了?

1 个回答

3

关于self、cr、uid参数的解释:

self - 这是Python中的一个概念,"self"指的是实例变量。它是对当前对象的引用。可以把它理解为其他编程语言中的"this"。

cr - 在openerp中,cr是当前数据库的游标,用于openerp中的一些内置方法,比如搜索、写入等。我们需要在调用这些方法时传入这个参数,因为它们的定义中需要这个参数。

uid - 这是登录用户的ID,用来管理规则和访问权限。

  • self是必须的

  • 对于普通函数来说,cr和uid是可选参数。

  • 但是根据ir.cron对象的定义,调度器方法需要cr和uid参数(在第6版中是这样,不确定第7版是否一样)

你可以通过变量、位置参数或关键字参数添加额外的参数。

如果可以的话,建议定义带有默认值的变量。

例如:

def run_scheduler(self, cr, uid, arg1=False, arg2=False, context=None, kargs*):
    #your code here

希望这些能帮到你。

撰写回答